# SelectQueryNode (/docs/core/reference/api/interfaces/SelectQueryNode)



[@kysoql/core](/docs/core/reference/api) / SelectQueryNode

Immutable query AST node for a complete SELECT query.

## Properties [#properties]

| Property                                                                   | Modifier   | Type                                                                                                                                                                        | Description                                                      |
| -------------------------------------------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- |
| <a id="api-property-kind" /> `kind`                                        | `readonly` | `"SelectQueryNode"`                                                                                                                                                         | Node discriminator used by Kysoql compilers and plugin visitors. |
| <a id="api-property-from" /> `from`                                        | `readonly` | [`SObjectNode`](/docs/core/reference/api/type-aliases/SObjectNode)                                                                                                          | Salesforce object queried by this SELECT node.                   |
| <a id="api-property-selections" /> `selections?`                           | `readonly` | readonly [`SelectionNode`](/docs/core/reference/api/type-aliases/SelectionNode)\[]                                                                                          | Selections emitted by this query or subquery.                    |
| <a id="api-property-usingscope" /> `usingScope?`                           | `readonly` | [`UsingScopeNode`](/docs/core/reference/api/type-aliases/UsingScopeNode)                                                                                                    | Optional `USING SCOPE` clause.                                   |
| <a id="api-property-where" /> `where?`                                     | `readonly` | [`WhereNode`](/docs/core/reference/api/type-aliases/WhereNode)                                                                                                              | Optional `WHERE` expression tree.                                |
| <a id="api-property-userprofilefeedwith" /> `userProfileFeedWith?`         | `readonly` | [`UserProfileFeedWithNode`](/docs/core/reference/api/type-aliases/UserProfileFeedWithNode)                                                                                  | Optional UserProfileFeed `WITH USER_ID` clause.                  |
| <a id="api-property-recordvisibilitycontext" /> `recordVisibilityContext?` | `readonly` | [`RecordVisibilityContextNode`](/docs/core/reference/api/type-aliases/RecordVisibilityContextNode)                                                                          | Optional `WITH RECORD_VISIBILITY_CONTEXT` clause.                |
| <a id="api-property-withdatacategory" /> `withDataCategory?`               | `readonly` | [`WithDataCategoryNode`](/docs/core/reference/api/type-aliases/WithDataCategoryNode)                                                                                        | Optional `WITH DATA CATEGORY` clause.                            |
| <a id="api-property-apexaccessmode" /> `apexAccessMode?`                   | `readonly` | [`ApexAccessModeNode`](/docs/core/reference/api/type-aliases/ApexAccessModeNode)                                                                                            | Optional Apex user/system access-mode clause.                    |
| <a id="api-property-groupby" /> `groupBy?`                                 | `readonly` | [`GroupByNode`](/docs/core/reference/api/type-aliases/GroupByNode)                                                                                                          | Optional `GROUP BY` clause.                                      |
| <a id="api-property-having" /> `having?`                                   | `readonly` | [`HavingNode`](/docs/core/reference/api/type-aliases/HavingNode)                                                                                                            | Optional `HAVING` clause.                                        |
| <a id="api-property-orderby" /> `orderBy?`                                 | `readonly` | [`OrderByNode`](/docs/core/reference/api/type-aliases/OrderByNode)                                                                                                          | Optional `ORDER BY` clause.                                      |
| <a id="api-property-limit" /> `limit?`                                     | `readonly` | [`LimitNode`](/docs/core/reference/api/type-aliases/LimitNode)\< \| `number` \| [`ApexBindExpressionNode`](/docs/core/reference/api/type-aliases/ApexBindExpressionNode)>   | Optional `LIMIT` clause.                                         |
| <a id="api-property-offset" /> `offset?`                                   | `readonly` | [`OffsetNode`](/docs/core/reference/api/type-aliases/OffsetNode)\< \| `number` \| [`ApexBindExpressionNode`](/docs/core/reference/api/type-aliases/ApexBindExpressionNode)> | Optional `OFFSET` clause.                                        |
| <a id="api-property-forviewreference" /> `forViewReference?`               | `readonly` | [`ForViewReferenceNode`](/docs/core/reference/api/type-aliases/ForViewReferenceNode)                                                                                        | Optional `FOR VIEW` or `FOR REFERENCE` clause.                   |
| <a id="api-property-knowledgeupdate" /> `knowledgeUpdate?`                 | `readonly` | [`KnowledgeUpdateNode`](/docs/core/reference/api/type-aliases/KnowledgeUpdateNode)                                                                                          | Optional KnowledgeArticle update clause.                         |
| <a id="api-property-allrows" /> `allRows?`                                 | `readonly` | [`AllRowsNode`](/docs/core/reference/api/type-aliases/AllRowsNode)                                                                                                          | Optional Apex `ALL ROWS` marker.                                 |
| <a id="api-property-forupdate" /> `forUpdate?`                             | `readonly` | [`ForUpdateNode`](/docs/core/reference/api/type-aliases/ForUpdateNode)                                                                                                      | Optional Apex `FOR UPDATE` marker.                               |
| <a id="api-property-setoptions" /> `setOptions?`                           | `readonly` | [`SetOptionsNode`](/docs/core/reference/api/type-aliases/SetOptionsNode)                                                                                                    | Optional Salesforce `SET OPTIONS` clause.                        |
