Question

Je dois changer le classement d'une variable nvarchar. Par la documentation :

  

(...)   3. La clause COLLATE peut être spécifiée   à plusieurs niveaux. Ceux-ci incluent le   suivant:

     

Lancer la collation d'un   expression. Vous pouvez utiliser le COLLATE   clause d'application d'une expression de caractère   à une certaine collation. Personnage   les littéraux et les variables sont attribués   le classement par défaut du courant   base de données. Les références de colonne sont   assigné la définition collation de   la colonne. Pour la collation d'un   expression, voir Précédente de classement   (Transact-SQL).

Cependant, je ne peux pas trouver la syntaxe correcte pour l'utilisation de CAST (), CONVERT () ou d'une déclaration de variable avec DECLARE à cette fin.

Était-ce utile?

La solution

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

Autres conseils

CAST ou CONVERT est superflu!

SELECT N'abc' COLLATE French_CS_AS

Cela est superflu car le simple changement de classement ne modifie pas le type de données NVARCHAR .

Si vous passez de 2 à 1 octet, ou vice-versa, des codages de caractères, puis CAST ou Convert est nécessaire. Ce n'est pas superflu dans ces cas.

Lorsque la colonne source est une séquence de caractères sur 2 octets (nchar, nvarchar) et que la projection de sélection doit être un caractère sur un seul octet (char, varchar), vous devez spécifier la conversion et la conversion. Appliquez la conversion de classement avant la conversion entre les systèmes de types.

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 classements différents, cela peut aider. Dans mon cas, je devais comparer deux colonnes, l'une utilisant 'SQL_Latin1_General_CP1_CI_AS' et l'autre utilisant 'Latin1_General_CP1_CI_AS'.

J'ai simplement utilisé cette option pour rejoindre ces deux personnes.

  

sur A.Person = B.NAME collate database_default

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top