Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Скалярные функции возвращают значение для каждой строки. Например, абсолютная скалярная функция принимает числовые столбцы в качестве аргумента и возвращает абсолютное значение каждого значения в столбце. Escape-последовательность вызова скалярной функции
{fn скалярная функция }
где скалярная функция является одной из функций, перечисленных в приложении E: Скалярные функции. Дополнительные сведения о escape-последовательности скалярной функции см. в статье "Скалярная функция escape-последовательность " в приложении C: грамматика SQL.
Например, следующие инструкции SQL создают тот же результирующий набор имен клиентов верхнего регистра. Первый оператор использует синтаксис escape-последовательности. Вторая инструкция использует собственный синтаксис для входящего трафика для ОС/2 и не совместим.
SELECT {fn UCASE(Name)} FROM Customers
SELECT uppercase(Name) FROM Customers
Приложение может смешивать вызовы скалярных функций, использующих собственный синтаксис и вызовы скалярных функций, использующих синтаксис ODBC. Например, предположим, что имена в таблице Employee хранятся в виде фамилии, запятой и имени. Следующая инструкция SQL создает результирующий набор фамилий сотрудников в таблице Employee. Инструкция использует скалярную функцию ODBC SUBSTRING и скалярную функцию SQL Server CHARINDEX и будет правильно выполняться только в SQL Server.
SELECT {fn SUBSTRING(Name, 1, CHARINDEX(',', Name) - 1)} FROM Customers
Для максимальной совместимости приложения должны использовать скалярную функцию CONVERT , чтобы убедиться, что выходные данные скалярной функции являются обязательным типом. Функция CONVERT преобразует данные из одного типа данных SQL в указанный тип данных SQL. Синтаксис функции CONVERT :
CONVERT( value_exp , data_type)
где value_exp является именем столбца, результатом другой скалярной функции или литеральным значением, а data_type — ключевое слово, соответствующее имени #define, которое используется идентификатором типа данных SQL, как определено в приложении D: Типы данных. Например, следующая инструкция SQL использует функцию CONVERT , чтобы убедиться, что выходные данные функции CURDATE являются датой, а не метками времени или символьными данными:
INSERT INTO Orders (OrderID, CustID, OpenDate, SalesPerson, Status)
VALUES (?, ?, {fn CONVERT({fn CURDATE()}, SQL_DATE)}, ?, ?)
Чтобы определить, какие скалярные функции поддерживаются источником данных, приложение вызывает SQLGetInfo с параметрами SQL_CONVERT_FUNCTIONS, SQL_NUMERIC_FUNCTIONS, SQL_STRING_FUNCTIONS, SQL_SYSTEM_FUNCTIONS и SQL_TIMEDATE_FUNCTIONS. Чтобы определить, какие операции преобразования поддерживаются функцией CONVERT , приложение вызывает SQLGetInfo с любыми параметрами, начинающимися с SQL_CONVERT.