Поделиться через


Константы (Transact-SQL)

Константа, также называемая литералом или скалярным значением, представляет собой символ, означающий указанное значение типа данных. Формат константы зависит от типа данных значения, который она означает.

  • Константы символьной строки
    Константы символьной строки заключаются в одинарные кавычки и состоят из алфавитно-цифровых (a-z, A-Z и 0-9) и специальных символов, таких как восклицательный знак (!), знак @ и знак номера (#). Значения константам символьной строки присваиваются согласно параметрам сортировки текущей базы данных. Чтобы указать другие параметры сортировки, необходимо использовать предложение COLLATE. Символы, вводимые пользователями, сопоставляются с кодовой страницей компьютера и в случае необходимости переводятся в символы, совместимые с кодовой страницей базы данных по умолчанию.

    Если для соединения значение параметра QUOTED_IDENTIFIER было задано как OFF, то символьные строки также могут заключаться в двойные кавычки, однако поставщик и драйвер ODBC для собственного клиента Microsoft SQL Server автоматически устанавливает значение параметра QUOTED_IDENTIFIER в значение ON. Рекомендуется использовать одинарные кавычки.

    Если символьная строка, заключенная в одинарные кавычки, содержит также внедренную одинарную кавычку, то эту кавычку необходимо заключить в дополнительные одинарные кавычки. Данное требование не распространяется на строки, заключенные в двойные кавычки.

    Ниже приведены примеры символьных строк.

    'Cincinnati'
    'O''Brien'
    'Process X is 50% complete.'
    'The level for job_id: %d should be between %d and %d.'
    "O'Brien"
    

    Пустые строки представляются в виде двух последовательных одинарных кавычек. В режиме совместимости с версией 6.x пустая строка рассматривается как одинарный пробел.

    Константы символьной строки поддерживают расширенные параметры сортировки.

    ПримечаниеПримечание

    Символьные константы длиной более 8000 байт относятся к типу данных varchar(max).

  • Строки в Юникоде
    Строка Юникода имеет формат, схожий с обычной символьной строкой, но она начинается с идентификатора N (в стандарте SQL-92 идентификатор N содержит сведения о языке сообщения строки). Префикс N должен быть заглавной буквой. Например, символьная строка 'Michel' в Юникоде имеет вид N'Michel'. Константы в Юникоде рассматриваются как данные Юникода, и при их обработке кодовая страница не используется. Константы в Юникоде имеют параметры сортировки. Этот параметр сортировки в основном управляет сравнением и учетом регистра. Значения константам в Юникоде присваиваются согласно параметрам сортировки текущей базы данных. Чтобы указать другие параметры сортировки, необходимо использовать предложение COLLATE. При хранении данных Юникода каждый символ занимает 2 байта вместо 1 байта на символ в символьных данных. Дополнительные сведения см. в разделе Использование данных в Юникоде.

    Константы в Юникоде поддерживают расширенные параметры сортировки.

    ПримечаниеПримечание

    Константы в Юникоде длиной более 8000 байт относятся к типу данных nvarchar(max).

  • Двоичные константы
    Двоичные константы начинаются с префикса 0x, за которым следует строка шестнадцатеричных чисел. Двоичные константы не заключаются в кавычки.

    Ниже приведены примеры двоичных строк.

    0xAE
    0x12Ef
    0x69048AEFDD010E
    0x  (empty binary string)
    
    ПримечаниеПримечание

    Двоичные константы длиной более 8000 байт относятся к типу данных varbinary(max).

  • Константы типа bit
    Константы типа bit содержат последовательности нулей и единиц и в кавычки не заключаются. Все числа, больше единицы, преобразуются в единицу.

  • Константы datetime
    Константы типа datetime задаются с помощью символьных значений даты специального формата, заключенных в одинарные кавычки. Дополнительные сведения о форматах для констант datetime см. в разделе Использование данных даты и времени.

    Ниже приведены примеры констант типа datetime.

    'December 5, 1985'
    '5 December, 1985'
    '851205'
    '12/5/98'
    

    Ниже приведены примеры констант, задающих время.

    '14:30:24'
    '04:24 PM'
    
  • Константы integer
    Константы типа integer состоят из числовых строк, которые не заключаются в кавычки и не содержат десятичного разделителя. Константы типа integer должны быть целыми числами, и в них не должно содержаться десятичных частей.

    Ниже приведены примеры констант типа integer.

    1894
    2
    
  • Константы decimal
    Константы типа decimal состоят из числовых строк, которые не заключаются в кавычки и содержат десятичный разделитель.

    Ниже приведены примеры констант типа decimal.

    1894.1204
    2.0
    
  • Константы типа float и real
    Константы типа float и real представляются в экспоненциальной форме.

    Ниже приведены примеры значений типа float или real:

    101.5E5
    0.5E-2
    
  • Константы money
    Константы типа money состоят из числовых строк, которые могут содержать десятичный разделитель и префикс в виде знака валюты. Константы типа money в кавычки не заключаются.

    SQL Server не предусматривает каких-либо жестких правил группирования, таких как разделение с помощью запятой (,) каждых трех разрядов значения.

    ПримечаниеПримечание

    Запятые, указанные в любом месте литерала типа money, игнорируются.

    Ниже приведены примеры констант типа money.

    $12
    $542023.14
    
  • Константы uniqueidentifier
    Константы типа uniqueidentifier состоят из строки, представляющей идентификатор GUID. Константы этого типа могут указываться с помощью символьного или двоичного символьного формата.

    Следующие примеры представляют один и тот же идентификатор GUID.

    '6F9619FF-8B86-D011-B42D-00C04FC964FF'
    0xff19966f868b11d0b42d00c04fc964ff
    

Указание отрицательных и положительных чисел

Чтобы указать, положительное ли число или отрицательное, к числовым константам применяются унарные операторы + или -. Таким образом создается числовое выражение, представляющее числовое значение со знаком. Если не применяется унарный оператор + или -, то значение считается положительным.

  • Ниже приведен пример выражения типа integer со знаком.

    +145345234
    -2147483648
    
  • Ниже приведен пример выражения типа decimal со знаком.

    +145345234.2234
    -2147483648.10
    
  • Ниже приведен пример выражения типа float со знаком.

    +123E-3
    -12E5
    
  • Ниже приведен пример выражения типа money со знаком.

    -$45.56
    +$423456.99
    

Расширенные параметры сортировки

SQL Server поддерживает возможность работы с символьными строками и строками в Юникоде, поддерживающими расширенные параметры сортировки. Дополнительные сведения см. в разделе COLLATE (Transact-SQL).