Преобразование типов и оператор CAST стр. 1 |
||
В реализациях языка Язык структурированных запросов) — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. SQL может быть выполнено неявное преобразование типов. Так, например, в Transact-SQL (T-SQL) — процедурное расширение языка SQL, используемое для программирования на стороне сервера в Microsoft Cистема управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft.SQL Server и Sybase ASE.Transact-SQL при сравнении или комбинировании значений типов smallint и int, данные типа smallint неявно преобразуются к типу int. Подробно о явном и неявном преобразовании типов в SQL Server можно прочитать в BOL. Пример 5.9.1. Вывести среднюю цену портативных компьютеров с предваряющим текстом «средняя цена = ». Попытка выполнить запрос приведет к сообщению об ошибке: Implicit conversion from data type varchar to money is not allowed. Use the CONVERT function to run this query. («Не допускается неявное преобразование типа varchar к типу money. Используйте для выполнения этого запроса функцию CONVERT».) Это сообщение означает, что система не может выполнить неявное преобразование типа varchar к типу money. В подобных ситуациях может помочь явное преобразование типов. При этом, как указано в сообщении об ошибке, можно воспользоваться функцией CONVERT. Однако эта функция не стандартизована, поэтому в целях переносимости рекомендуется использовать стандартное выражение CAST. С него и начнем. Итак, если переписать наш запрос в виде в результате получим то, что требовалось:
Мы использовали выражение явного преобразования типов CAST для приведения среднего значения цены к строковому представлению. Синтаксис выражения CAST очень простой
Внимание:
Следует иметь в виду, во-первых, что не любые преобразования типов возможны (стандарт содержит таблицу допустимых преобразований типов данных). Во-вторых, результат функции CAST для значения выражения, равного NULL, тоже будет NULL. |