따옴표가 있는 혼합 리터럴

SQL 문에는 따옴표로 묶인 리터럴 '...'이 포함될 수 있습니다 (작은따옴표 - 일련의 문자 - 작은따옴표). 따옴표가 있는 리터럴은 산술 공식과 같은 표현식의 결과가 아닌 자체로서 표시되는 상수입니다.

Netezza Performance Server SQL은 연결된 데이터 유형 키워드가 있거나 명시적으로 유형 변환되지 않는 한 따옴표로 묶인 리터럴을 유형이 없는 것으로 간주합니다. 데이터 유형을 쉽게 확인할 수 없는 경우 Netezza Performance Server SQL은 컨텍스트에서 유형을 추론합니다.
  • 키워드의 따옴표가 있는 리터럴: date '2004-Mar-09'
  • 명시적 타입 캐스팅이 있는 따옴표로 묶인 리터럴: ' cast('2004-Mar-09' as date) ' 또는 ' '2004-Mar-09'::date'
  • 컨텍스트에 따라 유형이 결정되는 따옴표로 묶인 리터럴: ' date_column = '2004-Mar-09''

    이 유형은 날짜 열과 비교할 때까지 알 수 없는 유형이며, Netezza Performance Server Netezza Performance Server SQL이 이를 날짜 유형에 할당하고 문자열을 날짜 상수로 구문 분석합니다.

문에 정수와 숫자가 혼합된 리터럴이 있는 경우 Netezza Performance Server SQL은 이를 구문 분석하는 방법을 결정해야 합니다.
  • 정수 및 숫자가 혼합된 따옴표 있는 리터럴: integer_column = '5' OR integer_column = '5.4'

    Netezza Performance Server SQL은 소수점이 있는 따옴표로 묶인 리터럴을 정수와 비교할 때 숫자로 취급하므로 이 구문을 허용합니다.

  • 정수 및 숫자가 혼합된 따옴표 없는 리터럴: integer_column = 5 OR integer_column = 5.4

    구문 분석기는 상수를 정수와 숫자로 인식합니다. ' <integer_column = 5.4> 절을 실행하기 위해 구문 분석기는 내장된 승격 규칙에 따라 정수와 숫자의 공통 데이터 유형이 숫자라고 명시되어 있으므로 integer_column을 숫자 유형으로 승격합니다. Netezza Performance Server SQL은 이 구문을 허용하고 절이 ' <integer_column::numeric = 5.4>'인 것처럼 실행합니다.