Select

ODBC 데이터 소스 또는 OLE DB 제공자의 필드는 표준 SQL SELECT 문을 통해 선택됩니다. 그러나 SELECT 문의 허용 여부는 사용되는 ODBC 드라이버 또는 OLE DB 제공자에 의해 좌우됩니다.

Syntax:  

Select [all | distinct | distinctrow | top n [percent] ] fieldlist

From tablelist

[where criterion ]

[group by fieldlist [having criterion ] ]

[order by fieldlist [asc | desc] ]

[ (Inner | Left | Right | Full) join tablename on fieldref = fieldref ]

 

또한 여러 개의 SELECT 문은 union 연산자를 사용하여 하나로 연결할 수도 있습니다.

selectstatement Union selectstatement

 

SELECT 문은 ODBC 드라이버 또는 OLE DB 공급자에 의해 해석되므로 ODBC 드라이버 또는 OLE DB 공급자의 기능에 따라 일반 SQL 구문과의 편차가 발생할 수 있습니다. 예를 들어 보면 다음과 같습니다.

  • as는 허용되지 않는 경우가 많습니다. 즉, aliasnamefieldname 바로 다음에 나와야 합니다.
  • aliasname이 사용된 경우 as가 필수일 수 있습니다.
  • distinct, as,where, group by, order by 또는 union은 지원되지 않는 경우가 있습니다.
  • ODBC 드라이버는 위에 나와 있는 다양한 인용 부호를 모두 허용하지 않을 수 있습니다.
참고: 위의 내용은 SQL SELECT 문에 대한 완전한 설명이 아닙니다. 예를 들어 SELECT 문은 중첩될 수 있고 한 SELECT 문에 여러 조인을 만들 수 있으며, 표현식에서 허용되는 함수가 매우 많을 수도 있습니다.

Arguments:  

인수 설명
distinct distinct는 선택된 필드의 중복 값 조합이 한 번만 로드되어야 하는 경우 사용되는 조건자입니다.
distinctrow distinctrow는 소스 테이블의 중복 레코드가 한 번만 로드되어야 하는 경우 사용되는 조건자입니다.
fieldlist fieldlist ::= (*| field ) {, field }

선택할 필드의 목록입니다. 필드 목록에 *를 사용하면 테이블의 모든 필드를 지정할 수 있습니다.

fieldlist ::= field {, field }

쉼표로 구분된 하나 이상의 필드 목록입니다.

field ::= ( fieldref | expression ) [as aliasname ]

expression은 하나 또는 여러 다른 필드에 기반을 둔 숫자 또는 문자열 함수일 수 있습니다. 일반적으로 허용되는 일부 연산자 및 함수에는 +, -, *, /, &(문자열 연결), sum(fieldname), count(fieldname), avg(fieldname)(average), month(fieldname) 등이 있습니다. 자세한 내용은 ODBC 드라이버의 설명서를 참조하십시오.

fieldref ::= [ tablename. ] fieldname

tablenamefieldname은 암시하는 것과 동일한 텍스트 문자열입니다. 공백이 포함된 경우 곧은 큰따옴표로 묶어야 합니다.

as 절은 필드에 새 이름을 할당하는 데 사용합니다.
from tablelist ::= table {, table }

필드를 선택할 테이블의 목록입니다.

table ::= tablename [ [as ] aliasname ]

tablename은 따옴표로 묶어도 되고 묶지 않아도 됩니다.

From

where where는 레코드를 선택에 포함할지를 나타내는 데 사용하는 절입니다.

criterion은 때때로 매우 복잡할 수 있는 논리 표현식입니다. 허용되는 일부 연산자에는 숫자 연산자와 함수, =, <> 또는 #(같지 않음), >, >=, <, <=, and, or, not, exists, some, all, in 및 새로운 SELECT 문이 있습니다. 자세한 내용은 ODBC 드라이버 또는 OLE DB 공급자의 문서를 참조하십시오.

group by group by는 여러 레코드를 하나로 집계(그룹화)하는 데 사용되는 절입니다. 특정 필드에서 한 그룹에 속하는 모든 레코드는 동일한 값을 가져야 하며 그렇지 않을 경우 해당 필드는 한 표현식(예: sum 또는 average) 내에서만 사용될 수 있습니다. 하나 또는 여러 필드에 기반을 둔 표현식은 필드 기호의 표현식으로 정의됩니다.
having havingwhere 절이 레코드 정규화에 사용되는 방식과 유사하게 그룹을 정규화하는 데 사용되는 절입니다.
order by order bySELECT 문의 결과 테이블의 정렬 순서를 지정하는 데 사용되는 절입니다.
join join은 여러 개의 테이블을 하나로 합칠 것인지 지정하는 한정자입니다. 필드 이름 및 테이블 이름에 문자 집합의 공백 또는 문자가 포함된 경우 따옴표로 묶어야 합니다. 스크립트가 Qlik Sense에 의해 자동으로 생성된 경우 사용된 인용 부호는 Connect 문에서 데이터 소스의 데이터 소스 정의에 지정된 ODBC 드라이버 또는 OLE DB 공급자에 의해 기본 설정된 부호입니다.

Example 1:  

SELECT * FROM `Categories`;

Example 2:  

SELECT `Category ID`, `Category Name` FROM `Categories`;

Example 3:  

SELECT `Order ID`, `Product ID`,

`Unit Price` * Quantity * (1-Discount) as NetSales

FROM `Order Details`;

Example 4:  

SELECT `Order Details`.`Order ID`,

Sum(`Order Details`.`Unit Price` * `Order Details`.Quantity) as `Result`

FROM `Order Details`, Orders

where Orders.`Order ID` = `Order Details`.`Order ID`

group by `Order Details`.`Order ID`;

See also: