簡體   English   中英

在t-sql中轉換nvarchar變量的歸類

[英]Cast collation of nvarchar variables in t-sql

我需要更改nvarchar變量的排序規則。 通過文件

(...)3。可以在多個級別指定COLLATE子句。 這些包括以下內容:

轉換表達式的排序規則。 您可以使用COLLATE子句將字符表達式應用於某個排序規則。 為字符文字和變量分配當前數據庫的默認排序規則。 為列引用分配列的定義排序規則。 有關表達式的排序規則 ,請參閱排序規則優先順序 (Transact-SQL)。

但是,為了這個目的,我無法弄清楚使用CAST(),CONVERT()或使用DECLARE的變量聲明的正確語法。

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

CASTCONVERT是多余的!

SELECT N'abc' COLLATE French_CS_AS

這是多余的,因為只更改排序規則不會更改數據類型NVARCHAR

如果要在2到1個字節之間進行更改,或者在ver-sa-sa字符編碼之間進行更改,則需要進行CAST或轉換。 在這些情況下,這不是多余的。

當源列是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.NAME collat​​e database_default

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM