The `$select` system query option names the columns to retrieve, separated by commas. Every other column stays out of the answer. ## Request ```text GET .../odata4/ExactOnlineREST.Financial.GLAccountsBulk@eol?$select=Code,DivisionName ``` ## Answer ```json { "@odata.context": ".../odata4/$metadata#ExactOnlineREST.Financial.GLAccountsBulk@eol(Code,DivisionName)", "value": [ { "Code": "0110", "DivisionName": "ACME BV" }, { "Code": "0120", "DivisionName": "ACME BV" } ] } ``` The context names the two columns behind the entity set, so a client can see which shape it received. ## Why It Is the Cheapest Option A column left out of the `$select` is not requested from the platform either, so the saving is not only in the size of the answer. On a platform which charges per field or answers slowly, this is the single most effective change to a download. A wide table has a second reason. The data model offers at most 1,000 columns per table, and a request without `$select` asks for all of them. ## Combining The option combines with every other option. Naming the columns and dropping the null values together shrinks a wide table twice: ```text GET .../odata4/ExactOnlineREST.Financial.GLAccountsBulk@eol?$select=Code,DivisionName Prefer: omit-values=nulls ```