스칼라 함수 호출Scalar Function Calls

스칼라 함수는 각 행에 대 한 값을 반환 합니다.Scalar functions return a value for each row. 예를 들어 절대값 스칼라 함수는 숫자 열을 인수로 사용 하 고 열에 있는 각 값의 절대 값을 반환 합니다.For example, the absolute value scalar function takes a numeric column as an argument and returns the absolute value of each value in the column. 스칼라 함수를 호출 하는 이스케이프 시퀀스는The escape sequence for calling a scalar function is

{fn 스칼라 함수 }{fn scalar-function }

여기서 스칼라 함수부록 E: 스칼라 함수에 나열 된 함수 중 하나입니다.where scalar-function is one of the functions listed in Appendix E: Scalar Functions. 스칼라 함수 이스케이프 시퀀스에 대 한 자세한 내용은 부록 C: SQL 문법의 스칼라 함수 이스케이프 시퀀스 를 참조 하세요.For more information about the scalar function escape sequence, see Scalar Function Escape Sequence in Appendix C: SQL Grammar.

예를 들어 다음 SQL 문은 대문자 고객 이름의 동일한 결과 집합을 만듭니다.For example, the following SQL statements create the same result set of uppercase customer names. 첫 번째 문은 이스케이프 시퀀스 구문을 사용 합니다.The first statement uses the escape-sequence syntax. 두 번째 문은 OS/2에 대 한 기본 구문을 사용 하 여 상호 운용할 수 없습니다.The second statement uses the native syntax for Ingres for OS/2 and is not interoperable.

SELECT {fn UCASE(Name)} FROM Customers  
  
SELECT uppercase(Name) FROM Customers  

응용 프로그램은 네이티브 구문을 사용 하는 스칼라 함수와 ODBC 구문을 사용 하는 스칼라 함수에 대 한 호출을 혼합할 수 있습니다.An application can mix calls to scalar functions that use native syntax and calls to scalar functions that use ODBC syntax. 예를 들어 Employee 테이블의 이름이 성, 쉼표 및 이름으로 저장 되어 있다고 가정 합니다.For example, assume that names in the Employee table are stored as a last name, a comma, and a first name. 다음 SQL 문은 Employee 테이블에서 직원의 last 이름 결과 집합을 만듭니다.The following SQL statement creates a result set of last names of employees in the Employee table. 이 문은 ODBC 스칼라 함수 SUBSTRING 및 SQL Server 스칼라 함수 CHARINDEX 를 사용 하 고 SQL Server 에서만 올바르게 실행 됩니다.The statement uses the ODBC scalar function SUBSTRING and the SQL Server scalar function CHARINDEX and will execute correctly only on SQL Server.

SELECT {fn SUBSTRING(Name, 1, CHARINDEX(',', Name) - 1)} FROM Customers  

상호 운용성을 최대화 하기 위해 응용 프로그램에서는 CONVERT 스칼라 함수를 사용 하 여 스칼라 함수의 출력이 필수 형식 인지 확인 해야 합니다.For maximum interoperability, applications should use the CONVERT scalar function to make sure that the output of a scalar function is the required type. CONVERT 함수는 데이터를 한 sql 데이터 형식에서 지정 된 sql 데이터 형식으로 변환 합니다.The CONVERT function converts data from one SQL data type to the specified SQL data type. CONVERT 함수의 구문은The syntax of the CONVERT function is

CONVERT ( value_exp , data_type)CONVERT( value_exp , data_type)

여기서 value_exp 는 열 이름, 다른 스칼라 함수 또는 리터럴 값의 결과, Data_type부록 D: 데이터 형식에 정의 된 대로 SQL 데이터 형식 식별자에 사용 되는 #define 이름과 일치 하는 키워드입니다.where value_exp is a column name, the result of another scalar function, or a literal value, and data_type is a keyword that matches the #define name that is used by an SQL data type identifier as defined in Appendix D: Data Types. 예를 들어 다음 SQL 문은 CONVERT 함수를 사용 하 여 curdate 함수의 출력이 타임 스탬프 또는 문자 데이터가 아닌 날짜 인지 확인 합니다.For example, the following SQL statement uses the CONVERT function to make sure that the output of the CURDATE function is a date, instead of a timestamp or character data:

INSERT INTO Orders (OrderID, CustID, OpenDate, SalesPerson, Status)  
   VALUES (?, ?, {fn CONVERT({fn CURDATE()}, SQL_DATE)}, ?, ?)  

데이터 소스에서 지원 되는 스칼라 함수를 확인 하기 위해 응용 프로그램은 SQL_CONVERT_FUNCTIONS, SQL_NUMERIC_FUNCTIONS, SQL_STRING_FUNCTIONS, SQL_SYSTEM_FUNCTIONS 및 SQL_TIMEDATE_FUNCTIONS 옵션을 사용 하 여 SQLGetInfo 를 호출 합니다.To determine which scalar functions are supported by a data source, an application calls SQLGetInfo with the SQL_CONVERT_FUNCTIONS, SQL_NUMERIC_FUNCTIONS, SQL_STRING_FUNCTIONS, SQL_SYSTEM_FUNCTIONS, and SQL_TIMEDATE_FUNCTIONS options. CONVERT 함수에서 지원 되는 변환 연산을 확인 하기 위해 응용 프로그램은 SQL_CONVERT로 시작 하는 옵션 중 하나를 사용 하 여 SQLGetInfo 를 호출 합니다.To determine which conversion operations are supported by the CONVERT function, an application calls SQLGetInfo with any of the options that start with SQL_CONVERT.