Collation Cast des variables nvarchar en T-sql
j'ai besoin de modifier le classement d'une variable de type nvarchar. documentation:
(...) 3. La clause de collation peut être spécifiée à plusieurs niveaux. Ces éléments comprennent l' suivantes:
Casting du classement d'une expression. Vous pouvez utiliser le COLLATE clause pour appliquer une expression de caractère à une certaine collecte. Caractère constantes et variables sont assignées la compilation par défaut du courant la base de données. Colonne les références sont a assigné la collecte de définition de colonne. Pour le classement d'un l'expression, voir Priorité De Classement (Transact-SQL).
cependant je ne peux pas trouver la syntaxe correcte pour L'usage de CAST(), CONVERT() ou déclaration variable avec DECLARE à cet effet.
4 réponses
CAST
ou CONVERT
est superflu!
SELECT N'abc' COLLATE French_CS_AS
c'est superflu parce que changer la collation ne change pas le type de données NVARCHAR
.
si vous changez entre 2 et 1 byte, ou vice-ver-sa, les codages de caractères alors CAST ou Convert est nécessaire. Elle n'est pas superflue dans ces cas.
lorsque la colonne source est une séquence de caractères de 2 octets (nchar, nvarchar) et que la projection de sélection doit être un caractère d'un seul octet (char, varchar), vous devez spécifier le cast et convert. Appliquer la conversion de collation avant la coulée entre les systèmes de type.
SELECT CAST(N'ФBC' COLLATE SQL_Latin1_General_CP1_CI_AS as varchar(10)) AS ProjectedSingleByte
si vous souhaitez comparer ou joindre deux colonnes de collation différente, cela pourrait vous aider. Dans mon cas, j'ai dû comparer deux colonnes avec L'Une utilisant "SQL_Latin1_General_CP1_CI_AS" et l'autre utilisant "Latin1_General_CP1_CI_AS".
j'ai simplement utilisé cette option où je rejoins ces deux.
on A. Person = B. NAME collate database_default