Table of Contents

Class TSelectSqlStatement

Namespace
gudusoft.gsqlparser.stmt
Assembly
gudusoft.gsqlparser.dll

Class TSelectSqlStatement represents query specification, query expression and select statement. query specification including following clause:

In some databases, query specification also known as sub-select.

query expression including all elements in query specification and following clause:

In some databases, query expression also known as full-select. It is a component of the select-statement, the INSERT statement, and the CREATE VIEW statement. And a full-select that is enclosed in parentheses is sometimes called a sub-query.

select statement including all elements in query expression and following clause:

Lots of clauses on this level are db vendors specific.

Use CombinedQuery to check whether UNION, EXCEPT and INTERSECT operators is used. If returns true, use LeftStmt and RightStmt to get query expression. You need to check CombinedQuery recursively, all clauses of TSelectSqlStatement only available when this function returns false.

public class TSelectSqlStatement : TCustomSqlStatement, Visitable
Inheritance
TSelectSqlStatement
Implements
Inherited Members

Constructors

TSelectSqlStatement(EDbVendor)

public TSelectSqlStatement(EDbVendor dbvendor)

Parameters

dbvendor EDbVendor

Fields

setOperator_except

public const int setOperator_except = 7

Field Value

int

setOperator_exceptall

public const int setOperator_exceptall = 8

Field Value

int

setOperator_intersect

public const int setOperator_intersect = 3

Field Value

int

setOperator_intersectall

public const int setOperator_intersectall = 4

Field Value

int

setOperator_minus

public const int setOperator_minus = 5

Field Value

int

setOperator_minusall

public const int setOperator_minusall = 6

Field Value

int

setOperator_none

public const int setOperator_none = 0

Field Value

int

setOperator_union

public const int setOperator_union = 1

Field Value

int

setOperator_unionall

public const int setOperator_unionall = 2

Field Value

int

Properties

All

public virtual bool All { get; set; }

Property Value

bool

CombinedQuery

Determine whether The UNION, EXCEPT and INTERSECT operators were used.

public virtual bool CombinedQuery { get; }

Property Value

bool

true if one of those operators were used.

ComputeClause

public virtual TComputeClause ComputeClause { get; set; }

Property Value

TComputeClause

DistributeBy

public virtual THiveDistributeBy DistributeBy { get; set; }

Property Value

THiveDistributeBy

ExpandOnClause

public virtual TExpandOnClause ExpandOnClause { get; set; }

Property Value

TExpandOnClause

FetchFirstClause

public virtual TFetchFirstClause FetchFirstClause { get; set; }

Property Value

TFetchFirstClause

ForUpdateClause

public virtual TForUpdate ForUpdateClause { get; set; }

Property Value

TForUpdate

GroupByClause

public virtual TGroupBy GroupByClause { get; set; }

Property Value

TGroupBy

HierarchicalClause

public virtual THierarchical HierarchicalClause { get; set; }

Property Value

THierarchical

HiveClusterBy

public virtual THiveClusterBy HiveClusterBy { get; set; }

Property Value

THiveClusterBy

HiveHintClause

public virtual THiveHintClause HiveHintClause { get; set; }

Property Value

THiveHintClause

IntoClause

public virtual TIntoClause IntoClause { get; set; }

Property Value

TIntoClause

IntoTableClause

public virtual TIntoTableClause IntoTableClause { get; set; }

Property Value

TIntoTableClause

IsolationClause

public virtual TIsolationClause IsolationClause { get; set; }

Property Value

TIsolationClause

LeftStmt

public virtual TSelectSqlStatement LeftStmt { get; set; }

Property Value

TSelectSqlStatement

LimitClause

public virtual TLimitClause LimitClause { get; set; }

Property Value

TLimitClause

Location

public virtual ESqlClause Location { get; set; }

Property Value

ESqlClause

LockingClauses

public virtual List<TLockingClause> LockingClauses { get; set; }

Property Value

List<TLockingClause>

OffsetClause

public virtual TOffsetClause OffsetClause { get; set; }

Property Value

TOffsetClause

OptionClause

public virtual TOptionClause OptionClause { get; set; }

Property Value

TOptionClause

OrderbyClause

public virtual TOrderBy OrderbyClause { get; set; }

Property Value

TOrderBy

ParenthesisCount

public virtual int ParenthesisCount { get; set; }

Property Value

int

ParenthesisCountBeforeOrder

public virtual int ParenthesisCountBeforeOrder { get; set; }

Property Value

int

QualifyClause

public virtual TQualifyClause QualifyClause { get; set; }

Property Value

TQualifyClause

QueryOfCTE

public virtual bool QueryOfCTE { get; set; }

Property Value

bool

RightStmt

public virtual TSelectSqlStatement RightStmt { get; set; }

Property Value

TSelectSqlStatement

SampleClause

public virtual TSampleClause SampleClause { get; set; }

Property Value

TSampleClause

SelectDistinct

public virtual TSelectDistinct SelectDistinct { get; set; }

Property Value

TSelectDistinct

SelectToken

public virtual TSourceToken SelectToken { get; set; }

Property Value

TSourceToken

SetOperator

public virtual int SetOperator { get; set; }

Property Value

int

SetOperatorType

public virtual ESetOperatorType SetOperatorType { get; set; }

Property Value

ESetOperatorType

SortBy

public virtual THiveSortBy SortBy { get; set; }

Property Value

THiveSortBy

TeradataWithClause

public virtual TTeradataWithClause TeradataWithClause { get; set; }

Property Value

TTeradataWithClause

TransformClause

public virtual THiveTransformClause TransformClause { get; set; }

Property Value

THiveTransformClause

ValueClause

public virtual TValueClause ValueClause { get; set; }

Property Value

TValueClause

WindowClause

public virtual TWindowClause WindowClause { get; set; }

Property Value

TWindowClause

childOfCombinedQuery

public bool childOfCombinedQuery { get; set; }

Property Value

bool

Methods

accept(TParseTreeVisitor)

public override void accept(TParseTreeVisitor v)

Parameters

v TParseTreeVisitor

acceptChildren(TParseTreeVisitor)

Accept visitor to visit this class.

public override void acceptChildren(TParseTreeVisitor v)

Parameters

v TParseTreeVisitor

user defined visitor.

addCondition(string)

this function is alias of addWhereClause

public virtual TWhereClause addCondition(string condition)

Parameters

condition string

new condition

Returns

TWhereClause

new where clause

addConditionOR(string)

public virtual TWhereClause addConditionOR(string condition)

Parameters

condition string

Returns

TWhereClause

addOrderBy(string)

[Obsolete("Method will be removed, please do not use it")]
public virtual TOrderBy addOrderBy(string orderByStr)

Parameters

orderByStr string

Returns

TOrderBy

addWhereClause(string)

this method was temporary disabled.

public override TWhereClause addWhereClause(string condition)

Parameters

condition string

Returns

TWhereClause

addWhereClauseOR(string)

public virtual TWhereClause addWhereClauseOR(string condition)

Parameters

condition string

Returns

TWhereClause

doAddWhereClause(string, bool)

[Obsolete("Method will be removed, please do not use it")]
protected virtual TWhereClause doAddWhereClause(string condition, bool isAnd)

Parameters

condition string
isAnd bool

Returns

TWhereClause

doParseStatement(TCustomSqlStatement)

This function is used internal. DON'T call it explicitly.

public override int doParseStatement(TCustomSqlStatement psql)

Parameters

psql TCustomSqlStatement

input query.

Returns

int

zero means there is no syntax error detected.

searchColumnInResultSet(TObjectName, bool)

Internal function, DON'T call it explicitly.

public virtual bool searchColumnInResultSet(TObjectName pColumn, bool pMustIn)

Parameters

pColumn TObjectName

, column to be searched.

pMustIn bool

, column must existed in this query.

Returns

bool

true if found.