JDBC Driver for Microsoft Power BI XMLA

Build 22.0.8462

SELECT Statements

A SELECT statement can consist of the following basic clauses.

  • SELECT
  • INTO
  • FROM
  • JOIN
  • WHERE
  • GROUP BY
  • HAVING
  • UNION
  • ORDER BY
  • LIMIT

SELECT Syntax

The following syntax diagram outlines the syntax supported by the SQL engine of the driver:

SELECT {
  [ TOP <numeric_literal> | DISTINCT ]
  { 
    * 
    | { 
        <expression> [ [ AS ] <column_reference> ] 
        | { <table_name> | <correlation_name> } .* 
      } [ , ... ] 
  }
  [ INTO csv:// [ filename= ] <file_path> [ ;delimiter=tab ] ]
  { 
    FROM <table_reference> [ [ AS ] <identifier> ] 
  } [ , ... ]
  [ [  
      INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } 
    ] JOIN <table_reference> [ ON <search_condition> ] [ [ AS ] <identifier> ] 
  ] [ ... ] 
  [ WHERE <search_condition> ]
  [ GROUP BY <column_reference> [ , ... ]
  [ HAVING <search_condition> ]
  [ UNION [ ALL ] <select_statement> ]
  [ 
    ORDER BY 
    <column_reference> [ ASC | DESC ] [ NULLS FIRST | NULLS LAST ]
  ]
  [ 
    LIMIT <expression>
    [ 
      { OFFSET | , }
      <expression> 
    ]
  ] 
}

<expression> ::=
  | <column_reference>
  | @ <parameter> 
  | ?
  | COUNT( * | { [ DISTINCT ] <expression> } )
  | { AVG | MAX | MIN | SUM | COUNT } ( <expression> ) 
  | NULLIF ( <expression> , <expression> ) 
  | COALESCE ( <expression> , ... ) 
  | CASE <expression>
      WHEN { <expression> | <search_condition> } THEN { <expression> | NULL } [ ... ]
    [ ELSE { <expression> | NULL } ]
    END 
  | <literal>
  | <sql_function> 

<search_condition> ::= 
  {
    <expression> { = | > | < | >= | <= | <> | != | LIKE | NOT LIKE | IN | NOT IN | IS NULL | IS NOT NULL | AND | OR | CONTAINS | BETWEEN } [ <expression> ]
  } [ { AND | OR } ... ] 

Examples

  1. Return all columns:
    SELECT * FROM [AdventureWorksDW2012Multidimensional-SE].[Adventure Works].Customer
  2. Rename a column:
    SELECT [Education] AS MY_Education FROM [AdventureWorksDW2012Multidimensional-SE].[Adventure Works].Customer
  3. Cast a column's data as a different data type:
    SELECT CAST(AnnualRevenue AS VARCHAR) AS Str_AnnualRevenue FROM [AdventureWorksDW2012Multidimensional-SE].[Adventure Works].Customer
  4. Search data:
    SELECT * FROM [AdventureWorksDW2012Multidimensional-SE].[Adventure Works].Customer WHERE Country = 'Australia'
  5. Return the number of items matching the query criteria:
    SELECT COUNT(*) AS MyCount FROM [AdventureWorksDW2012Multidimensional-SE].[Adventure Works].Customer 
  6. Return the number of unique items matching the query criteria:
    SELECT COUNT(DISTINCT Education) FROM [AdventureWorksDW2012Multidimensional-SE].[Adventure Works].Customer 
  7. Return the unique items matching the query criteria:
    SELECT DISTINCT Education FROM [AdventureWorksDW2012Multidimensional-SE].[Adventure Works].Customer 
  8. Summarize data:
    SELECT Education, MAX(AnnualRevenue) FROM [AdventureWorksDW2012Multidimensional-SE].[Adventure Works].Customer GROUP BY Education
    See Aggregate Functions for details.
  9. Retrieve data from multiple tables.
    SELECT Customers.ContactName, Orders.OrderDate FROM Customers, Orders WHERE Customers.CustomerId=Orders.CustomerId
    See JOIN Queries for details.
  10. Sort a result set in ascending order:
    SELECT Country, Education FROM [AdventureWorksDW2012Multidimensional-SE].[Adventure Works].Customer  ORDER BY Education ASC
  11. Restrict a result set to the specified number of rows:
    SELECT Country, Education FROM [AdventureWorksDW2012Multidimensional-SE].[Adventure Works].Customer LIMIT 10 
  12. Parameterize a query to pass in inputs at execution time. This enables you to create prepared statements and mitigate SQL injection attacks.
    SELECT * FROM [AdventureWorksDW2012Multidimensional-SE].[Adventure Works].Customer WHERE Country = @param
See Explicitly Caching Data for information on using the SELECT statement in offline mode.

Copyright (c) 2023 CData Software, Inc. - All rights reserved.
Build 22.0.8462