||= (составное назначение) (Transact-SQL)
Применимо к: База данных SQL Azure
||=
Объединение с помощью оператора составного назначения можно использовать для объединения выражения со значением символьной или двоичной строковой переменной, а затем назначить результирующее выражение переменной.
Оператор ||=
поддерживает то же поведение, что и оператор += для символьных и двоичных строк.
Соглашения о синтаксисе Transact-SQL
Синтаксис
variable ||= expression
Аргументы
variable
Переменная T-SQL типа символов: char, varchar, nchar, nvarchar, varchar(max)или nvarchar(max), или двоичного типа: binary или varbinary или varbinary(max).
выражение
Символ или двоичное выражение. Если выражение не является типом символа, тип выражения должен быть неявно преобразован в строку символов.
Типы возвращаемых данных
Назначает результат оператора объединения для символьных строк переменной.
- Если переменная или выражение является значением SQL
NULL
, результатом сцепленного выражения являетсяNULL
. - Если переменная имеет тип данных большого объекта (LOB) (varchar(max) или nvarchar(max)), то результирующее выражение — varchar(max) или nvarchar(max).
- Если переменная имеет тип varbinary(max),результирующее выражение имеет тип varbinary(max).
- Если переменная не является типом бизнес-объекта, результат усечен до максимальной длины объявленного типа переменной.
Замечания
Если результат объединения строк превышает предел в 8 000 байт, то он усекается. Однако если хотя бы одна из строк сцеплена является большим типом значения, усечение не происходит.
При сцеплении двоичных строк с любыми символами между двоичными строками необходимо использовать явное преобразование в символьные данные.
Строки и символы нулевой длины
Оператор ||=
(объединение строк) ведет себя по-разному при работе с пустой строкой нулевой длины, чем при работе с NULL
неизвестными значениями. Символьная строка символа нулевой длины может быть указана в виде двух одинарных кавычек без каких-либо символов между ними. Двоичная строка нулевой длины может быть указана без 0x
каких-либо байтовых значений, указанных в шестнадцатеричной константе. При сцеплении строки нулевой длины всегда сцепляются две указанные строки.
Объединение значений NULL
Как и при арифметических операциях, NULL
выполняемых при NULL
добавлении значения в известное значение, результат обычно является значениемNULL
. Операция объединения строк, выполняемая со NULL
значением, также должна привести к результату NULL
.
Оператор ||=
не учитывает SET CONCAT_NULL_YIELDS_NULL
параметр и всегда ведет себя так, как если бы поведение ANSI SQL было включено, что дает NULL
значение, если какой-либо из входных данных имеет значение NULL
. Это основное различие в поведении между +=
операторами объединения.||=
Дополнительные сведения см. в описании SET CONCAT_NULL_YIELDS_NULL.
Примеры
А. Использование объединения с составным назначением для строк
DECLARE @v1 varchar(10) = 'a'
SET @v1 ||= 'b';
SELECT @v1
Вот результирующий набор.
ab
B. Использование объединения с составным назначением для двоичных данных
DECLARE @v2 varbinary(10) = 0x1a;
SET @v2 ||= 0x2b;
select @v2;
Вот результирующий набор.
0x1A2B
Связанный контент
- || (Объединение строк) (Transact-SQL)
- + (объединение строк) (Transact-SQL)
- += (назначение сцепления строк) (Transact-SQL)
- ALTER DATABASE (Transact-SQL)
- CAST и CONVERT (Transact-SQL)
- Преобразование типов данных (ядро СУБД)
- Типы данных (Transact-SQL)
- Выражения (Transact-SQL)
- Встроенные функции (Transact-SQL)
- Операторы (Transact-SQL)
- SELECT (Transact-SQL)
- Инструкции SET (Transact-SQL)