A `select` in the editor is written as SQL is written anywhere, with one addition: the table is named with the data container it lives in.
## Naming the Table
`Projects@dummy` reads the table `Projects` in the container `dummy`. Where the container has a catalog and a schema of its own, the full name is `Dummy.Demo.Projects@dummy`, which is what [[Invantive Query Tool/Describe Object|Describe Object]] and the [[Invantive Query Tool/The Data Dictionary|data dictionary]] state. The short form is enough as long as it is unambiguous over the containers of the connection; where two containers hold a table of the same name, the fuller name settles it.
A statement without an `@` runs against the default container of the database.
## What Comes Back
The columns of a cloud platform are rarely named as the platform's own user interface names its fields, so `select *` is the honest way to start and a named list of columns is the way to finish. Naming the columns is not cosmetic: it saves the platform the work of the rest and the connection the traffic, which on a platform charged per row is money.
Which columns exist, what they hold and how they are labelled is read in [[Invantive Query Tool/Describe Object|Describe Object]]; the labels the grid shows come from that metadata rather than from the statement.
## Filtering
A `where` is applied by the platform where the platform can apply it, and by the engine where it cannot. The difference is not visible in the answer but is visible in the traffic: a condition the platform applies means fewer rows travel. Which of the two happened shows in the [[Invantive Query Tool/Connection Monitor|Connection Monitor]] and in the [[Invantive Query Tool/Progress|Progress]] panel.
Text is compared as it is stored. Invantive UniversalSQL trims text and treats an empty text as absent, so a condition on a column which is empty is written as `is null` rather than as `= ''`.
## Ordering and Limiting
An `order by` and a `limit` belong in the statement where the whole answer matters; sorting in the grid covers the rows retrieved so far and no more. See [[Invantive Query Tool/Working with Large Results|Working with Large Results]].
## Where the Language Is Documented
The grammar of a `select` - the joins, the subqueries, the functions, the hints - is documented under [[Invantive UniversalSQL/Invantive UniversalSQL|Invantive UniversalSQL]]. What is written here is what is particular to writing one in this product.