Подтвердить что ты не робот

Кастовая сортировка переменных nvarchar в t-sql

Мне нужно изменить сортировку переменной nvarchar. По документации:

(...) 3. Можно указать предложение COLLATE на нескольких уровнях. К ним относятся следующее:

Листинг сортировки выражение. Вы можете использовать COLLATE для применения символьного выражения к определенной сортировке. символ литералы и переменные стандартная сортировка текущего база данных. Ссылки столбцов назначил определение колонка. Для сопоставления выражение, см. Приоритет сортировки(Transact-SQL).

Однако я не могу определить правильный синтаксис для использования CAST(), CONVERT() или объявления переменной с DECLARE для этой цели.

4b9b3361

Ответ 1

SELECT CAST('abc' AS varchar(5)) COLLATE French_CS_AS

Ответ 2

CAST или CONVERT является излишним!

SELECT N'abc' COLLATE French_CS_AS

Это лишнее, потому что просто изменение сортировки не изменяет тип данных NVARCHAR.

Ответ 3

Если вы изменяете между 2 и 1 байт или наоборот, кодировки символов, то требуется CAST или Convert. В этих случаях это не лишнее.

Когда исходный столбец представляет собой 2-байтовую последовательность символов (nchar, nvarchar), а проекция выбора должна быть одиночным байтовым символом (char, varchar), вы должны указать преобразование и преобразование. Примените преобразование сортировки перед литьем между системами типов.

SELECT CAST(N'ФBC' COLLATE SQL_Latin1_General_CP1_CI_AS as varchar(10)) AS ProjectedSingleByte