Приведенная сортировка переменных nvarchar в t-sql
Мне нужно изменить параметры сортировки переменной nvarchar. документация:
(...) 3. Предложение COLLATE можно указать на нескольких уровнях. К ним относятся: следующий:
кастинг сортировки выражение. Вы можете использовать COLLATE предложение для применения символьного выражения к определенной сортировке. Характер литералы и переменные назначаются параметры сортировки по умолчанию для текущего база данных. Колонна ссылки присвоено определение параметров сортировки столбец. Для сортировки выражение, смотри Очередность Параметров Сортировки (Transact-SQL).
однако я не могу понять правильный синтаксис для использования объявления CAST(), CONVERT() или переменной с объявлением для этой цели.
4 ответов
CAST
или CONVERT
- это лишнее!
SELECT N'abc' COLLATE French_CS_AS
это лишнее, потому что просто изменение параметров сортировки не изменяет тип данных NVARCHAR
.
Если вы меняете между 2 и 1 байтом или vice-ver-sa, кодировки символов, то CAST или Convert необходимо. В этих случаях это не лишнее.
когда исходный столбец представляет собой последовательность символов 2 байта (nchar, nvarchar), а проекция выбора должна быть однобайтовым символом (char, varchar), вы должны указать приведение и преобразование. Примените преобразование параметров сортировки перед литьем между системами типов.
SELECT CAST(N'ФBC' COLLATE SQL_Latin1_General_CP1_CI_AS as varchar(10)) AS ProjectedSingleByte
Если вы хотите сравнить или объединить два столбца разных параметров сортировки, это может помочь. В моем случае мне пришлось сравнить два столбца с одним, используя "SQL_Latin1_General_CP1_CI_AS", а другой - "Latin1_General_CP1_CI_AS".
Я просто использовал эту опцию, где я присоединяюсь к этим двум.
на A. Person = B. имя сопоставить database_default