當前位置:首頁 » 編程語言 » sql默認排序規則

sql默認排序規則

發布時間: 2023-06-13 20:36:12

sql2000怎麼設置默認排序規則為Chinese_PRC

解決的辦法是指名排序方式,告訴查詢分析器應該怎樣排序即可。這里會需要用到一個關鍵字 COLLATE
Coliate 在SQLServer聯機叢書中是這樣解釋的
COLLATE
一個子句,可應用於資料庫定義或列定義以定義排序規則,或應用於字元串表達式以應用排序規則投影。

語法
COLLATE < collation_name >

< collation_name > ::=
|

參數
collation_name

是應用於表達式、列定義或資料庫定義的排序規則的名稱。collation_name 可以只是指定的 Windows_collation_name 或 SQL_collation_name。

Windows_collation_name
是 Windows 排序規則的排序規則名稱。請參見 Windows 排序規則名稱。

SQL_collation_name
是 SQL 排序規則的排序規則名稱。請參見 SQL 排序規則名稱。

那麼我們怎麼可以知道當前的排序規則名稱是什麼呢,其實這個排序規則名稱是我們在創建資料庫(實例)的時候就可以進行選擇的,不過通常情況下我們都會默認原來的設定,不會對其進行變更,所以如果是簡體中文的SQLServer就會默認的使用簡體中文的排序規則,而如果是繁體中文的SQLServer 就會默認的使用繁談肢晌體中文的排序規則。我們在察看資料庫(實例)的屬性時,常規頁簽的最下面一行就是當前的排序規則。在默認的情況下,簡體中文的排序規則名稱是:Chinese_PRC_CI_AS,而繁體中文的排序規則名稱則是:Chinese_Taiwan_Stroke_CI_AS,所以我們如果在有簡體繁體排序規則名稱混用的時候,只要聲明一下你當前要使用哪種排序規則進行比較就可以了,例如針對上面的那個SQL語句,下面兩種方法都可以解決那個錯誤提示的問題
SELECT Table1.*,Table2.*
FROM Table1
INNER JOIN Table2 ON Table2.FK = Table1.PK COLLATE Chinese_PRC_CI_AS

SELECT Table1.*,Table2.*
FROM Table1
INNER JOIN Table2 ON Table2.FK = Table1.PK COLLATE Chinese_Taiwan_Stroke_CI_AS

說了半天如何解決排序規則沖突引起的問題,如果還有興趣的話,下面把SQL Server聯機叢書裡面關於排序規則的概念貼出來給大家分享一下,省得大家再去找:
Microsoft® SQL Server™ 2000 支持多種排序規則。排序規則對控制正確使用語言(如馬其頓語或含鋒波蘭語)或字母表(如西歐語言使用的拉丁字母表 Latin1_General)字元的規則進行編碼。

每個 SQL Server 排序規則指定三個屬性:

用於 Unicode 數據類型(nchar、nvarchar 和 ntext)的排序次序。排序次序定義字元的排序序列,以及在比較操作中對字元取值的方法。

用於非 Unicode 字元數據類型(char、varchar 和 text)的排序次序。

用於存儲非 Unicode 字元數據的代碼頁。

說明 不能指定與 Unicode 數據類型(nchar、nvarchar 和 ntext)對應的代碼頁。用於 Unicode 字元的雙位元組位模式由 Unicode 標準定義且不能更改。

可在任何級別上指定 SQL Server 2000 排序規則。安裝 SQL Server 2000 實例時,可指定該實例的默認排序規則。每次創建資料庫時,可指定用於該資料庫的默認排序飢亂規則。如果未指定排序規則,資料庫的默認排序規則即是實例的默認排序規則。無論何時定義字元列、變數或參數,都可指定這些對象的排序規則。如果未指定排序規則,將使用資料庫的默認排序規則創建這些對象。

如果 SQL Server 實例的所有用戶都使用同一種語言,則應選擇支持該語言的排序規則。例如,若所有用戶都講法語,則選擇法語排序規則。

如果 SQL Server 實例的用戶使用多種語言,則應選擇能對多語種需求提供最佳支持的排序規則。例如,如果用戶一般都講西歐語言,則選擇 Latin1_General 排序規則。當支持使用多種語言的用戶時,對所有字元數據都使用 Unicode 數據類型 nchar、nvarchar 和 ntext 最為重要。Unicode 旨在消除非 Unicode char、varchar 和 text 數據類型的代碼頁轉換困難。因為排序規則定義用於比較操作的排序次序和 Unicode 字元的排序,所以當用 Unicode 數據類型實現所有的列時,排序規則仍會產生不同。即使當使用 Unicode 數據類型存儲字元數據時,也應選擇支持大多數用戶的排序規則,以防使用非 Unicode 數據類型實現列或變數。

SQL Server 排序規則定義資料庫引擎存儲和操作字元及 Unicode 數據的方式。然而,當數據移入應用程序後,在應用程序中進行的字元排序和比較將由計算機上選定的 Windows 區域設置控制。應用程序使用的字元數據排序規則是由 Windows 區域設置控制的項目之一,區域設置還定義其它項目,如數字、時間、日期和貨幣格式。對於 Microsoft Windows NT® 4.0、Microsoft Windows® 98 和 Microsoft Windows 95,可使用控制面板中的"區域設置"應用程序指定 Windows 區域設置。對於 Microsoft Windows 2000,可使用"控制面板"中的"區域選項"應用程序指定區域設置。有關 Windows 區域設置的更多信息,請參見 Microsoft Web 站點 MSDN® 頁中的 Developing International Software for Windows 95 and Windows NT 4.0。

多個排序規則可對非 Unicode 數據使用相同的代碼頁。例如,代碼頁 1251 定義西里爾語字元集。多個排序規則(如 Cyrillic_General、Ukrainian 和 Macedonian)都使用該代碼頁。雖然這些排序規則都使用相同的位集來表示非 Unicode 字元數據,但在處理字典定義時所應用的排序和比較規則略有不同,而字典定義確定語言或字母表中與排序規則相關的正確字元序列。

因為 SQL Server 2000 排序規則控制 Unicode 和非 Unicode 排序次序,所以不會遇到由為 Unicode 和非 Unicode 數據指定不同的排序規則而引起的問題。在 SQL Server 的早期版本中,對代碼頁號、字元排序次序和 Unicode 排序規則分別進行指定。SQL Server 的早期版本還支持每個代碼頁有不同數目的排序次序,並為某些代碼頁提供 Windows 區域設置中沒有的排序次序。在 SQL Server 7.0 中,還可以指定為非 Unicode 數據選擇的排序次序以外的其它 Unicode 排序次序。這會導致在使用與非 Unicode 數據相對的 Unicode 數據時,排序和比較操作返回不同的結果。
另外,虛機團上產品團購,超級便宜

② SQL Server轉換資料庫的排序規則

什麼是排序規則?

排序規則指定了表示每個字元的位模式 它還指定了用於排序和比較字元的規則 排序規則具有下面的特徵

◆語言

◆區分大小寫

◆區分重音

◆區分假名

要了解伺服器當前使用的排序規則 可以在 SQL 查詢分析器中運行 sp_helpsort 系統過程

SQL Server 不支持使用多個排序規則的資料庫 因此 在 SQL Server 中創建的所有資料庫均使用默認的排喊瞎序規則 SQL Server 支持多個排序鄭譽空規則 SQL Server 資料庫可使用除默認排序規則以外的其他排序規則 此外 SQL Server 還支持使用排序規則(除資料庫創建的排序規則外)的列

在 DTS 中使用「使用排序規則」選項的條件

SQL Server 可包含多個資料庫或列 它們可以使用除默認排序規則以外的排序規則 因此 在數據轉換服務 (DTS) 中引入了名為「使用排序規則」的新選項 「使用排序規則」選項的行為由要執行的轉換的類型決定 如果要在 SQL Server 的兩個實例之間傳輸數據且啟用了「使用排序規則」選項 則數據將從源代碼頁轉換到目標代碼頁 如果沒有啟用「使用排序規則」選項且 SQL Server 的兩個實例中的代碼頁相同 則會直接傳輸數據 如果代碼頁不同 則數據將從源代碼頁轉換到目標代碼頁 但是 在傳輸數據時 轉換可能會出現錯誤

注意 如果排序規則用於數據本身並且列使用的是 COLLATE 子句 則排序規則很重要 「使用排序規則」選項確定當數據從一個排序規則傳輸到另一個排序規則時是否轉換代碼頁 「使用排序規則」選項不會影響是否設置了列定義的 COLLATE 屬性 因此 如果源表包含使用 COLLATE 子句創建的帶有特定排序規則的列 則此排序規則將在傳輸數據時得以保留 而不管是否在數據轉換服務向導中啟用了「使用排序規則」選項

不改變資料庫排序規則的轉換方法

下列方法不改變資料庫的排序規則

◆備份和還原虛鏈 在某伺服器上還原資料庫時 如果該伺服器使用的排序規則與用於備份的伺服器使用的排序規則不同 則不會將還原後的資料庫轉換為使用新的排序規則 資料庫排序規則仍保持原樣

◆分離和重新附加 如果分離使用某一排序規則創建的資料庫 並且將該資料庫重新附加到使用其他排序規則的另一伺服器 則該資料庫的排序規則不會改變 資料庫的排序規則仍保持原樣

◆復制資料庫向導 復制資料庫向導實質上使分離和重新附加的過程自動化了 資料庫的排序規則仍保持原樣

注意 復制資料庫向導僅在 SQL Server 中可用

在 SQL Server 中轉換資料庫的排序規則

要在運行 SQL Server 的兩台計算機之間更改資料庫的排序規則 必須在目標伺服器上創建用戶資料庫和所有對象 然後使用 DTS 或 bcp 實用工具傳輸數據

要將資料庫從運行 SQL Server 的計算機傳輸到運行 SQL Server 且具有另一排序規則的計算機 請按照下列步驟操作

備份源資料庫

使用 SQL Server 企業管理器為源資料庫中的所有對象創建腳本

要從資料庫的所有表中導出數據 請使用 DTS 或 bcp 實用工具

使用 SQL Server 企業管理器或 CREATE DATABASE 語句在目標伺服器上創建新的資料庫

注意 當使用 CREATE DATABASE 語句時 資料庫將使用與運行 SQL Server 的計算機相同的排序規則

使用 SQL 查詢分析器來運行在步驟 中創建的腳本 以便在目標資料庫中重新創建所有對象

注意 此表和列將使用與運行 SQL Server 的計算機相同的排序規則

使用 DTS 或 bcp 實用工具將數據導入到目標表中

將 SQL Server 中資料庫的排序規則轉換為 SQL Server 中的排序規則

要在 SQL Server 和 SQL Server 之間更改資料庫的排序規則 必須在傳輸數據之前 在目標伺服器上使用適當的排序規則創建資料庫 列或同時創建資料庫和列 但是 在將數據從 SQL Server 傳輸到 SQL Server 時 可以使用 DTS 刪除並重新創建對象 因此 在執行此操作時 必須在 DTS 中啟用「使用排序規則」選項

注意 請不要使用 SQL Server 中的 DTS 實用工具與運行 SQL Server 的計算機相互傳輸所有對象 如果必須在 SQL Server 和 SQL Server 之間傳輸數據 則必須使用 SQL Server 中的 DTS 實用工具

要將 SQL Server 中資料庫的排序規則轉換為 SQL Server 中的排序規則 請按照下列步驟操作

備份源資料庫

使用 SQL Server 企業管理器為源資料庫中的所有對象創建腳本

如果列必須使用其他排序規則 而不使用目標資料庫上的默認排序規則 請對腳本中相應列的排序規則進行必要的更改

使用適當的排序規則在目標伺服器上創建新的資料庫

使用 SQL 查詢分析器在目標伺服器上運行在步驟 中創建的腳本 以便在資料庫中重新創建所有對象

注意 新表和列使用與資料庫相同的排序規則 除非您為這些列指定了其他排序規則

使用 DTS 或 bcp 實用工具傳輸數據

注意 如果使用 DTS 請驗證下列信息

◆確保在將數據從 SQL Server 傳輸到 SQL Server 時啟用了「使用排序規則」選項

◆因為已在目標伺服器上使用適當的排序規則創建了對象 所以要禁用「首先創建目標對象」選項

在 SQL Server 中轉換資料庫的排序規則

要在 SQL Server 中轉換資料庫的排序規則 請按照下列步驟操作

備份源資料庫

注意所有列是否使用 COLLATE 子句

使用適當的排序規則在目標伺服器上創建新的資料庫

如果沒有列使用 COLLATE 子句 請使用 DTS 將數據傳輸到目標伺服器 為此 請啟用「使用排序規則」選項以進行代碼頁轉換 並將數據轉換為目標資料庫上的新排序規則 如果所有列均使用 COLLATE 子句 請按照下列步驟操作

a 為所有對象(不包括索引 觸發器 主鍵 外鍵 默認設置和約束)生成腳本 此外 確保啟用了「僅為與 版兼容的功能編寫腳本」選項 以便從腳本刪除 COLLATE 子句

注意 使用「僅為與 版兼容的功能編寫腳本」選項時 可以更改排序規則 但是 生成腳本時將不考慮任何新的 SQL Server 選項(包括用戶定義的函數 擴展屬性 INSTEAD OF 觸發器和視圖上的索引)

b 在目標資料庫上運行步驟 a 中創建的腳本 以便使用目標資料庫的排序規則創建對象

c 使用 DTS 僅傳輸源資料庫中的數據

d 成功傳輸數據後 將會為源資料庫中的所有約束 外鍵 主鍵和索引生成腳本

e 在目標資料庫上運行步驟 d 中創建的腳本

更改 master 資料庫的排序規則

如果要更改 master 資料庫的排序規則 則必須重建 master 資料庫 在重建 master 資料庫時 實質上是創建了新的 master 資料庫 因此 重建 master 資料庫之前 應考慮下列事項

◆確保創建了當前 master 資料庫的有效備份 在重建 master 資料庫時 還會重建 msdb 資料庫和 model 資料庫 因此 在重建 master 資料庫之前必須備份 msdb 資料庫和 model 資料庫 msdb 資料庫是用於存儲 SQL Server 作業 警報 運算符和 DTS 包的系統資料庫 model 資料庫是創建新資料庫時所使用的模板資料庫

◆因為重建 master 資料庫會創建一個新的 master 資料庫 所以必須在重建 master 資料庫之後重新輸入現有登錄信息 因此 還必須在重建 master 資料庫之前導出登錄信息 然後在重建 master 資料庫後 導入登錄信息

◆因為在重建 master 資料庫時會重建 msdb 資料庫 所以在重建 master 資料庫之前 必須為所有作業 警報和運算符生成腳本 此外 還必須確保移動了所有 DTS 包

◆因為在重建 master 資料庫時會重建 model 資料庫 所以在重建 master 資料庫之前 必須記下或導出以前對 model 資料庫所做的全部更改或為其生成腳本 重建 model 資料庫之後 請重新應用已記錄的全部更改

在 SQL Server 中更改 master 資料庫的排序規則

更改 master 資料庫的排序規則之前 請按照下列步驟操作

重建 master 資料庫之後 不會自動恢復在重建此資料庫之前創建的所有資料庫 因此 所有資料庫必須從備份進行還原 或者如果文件仍在磁碟上 則可以使用 sp_attach_db 系統存儲過程重新附加資料庫 請確保在重建 master 資料庫之前將所有必要的信息重新附加到現有資料庫

在重建 master 資料庫時 僅更改 master 資料庫 model 資料庫和 msdb 資料庫的排序規則 不會更改用戶資料庫的排序規則 要更改現有用戶資料庫的排序規則或者使用適當的排序規則創建新的資料庫 請使用 ALTER DATABASE 命令 然後使用 DTS 或 bcp 實用工具將數據傳輸到新的資料庫

注意 如果在 SQL Server 中使用 ALTER DATABASE 命令來更改資料庫的排序規則 則表中列的排序規則將不會自動更改 要更改列的排序規則 請使用 ALTER TABLE 命令和 ALTER COLUMN 命令 如果使用 DTS 則可以在傳輸數據或使用「使用排序規則」選項之前 使用適當的排序規則創建表和列 如果使用的 DTS 和表已經包含適當的排序規則 請確保在運行軟體包之前禁用了「首先刪除現有對象」選項

在 SQL Server 中更改 master 資料庫的排序規則

更改 master 資料庫的排序規則之前 請按照下列步驟操作

SQL Server 不支持資料庫使用除默認排序規則以外的排序規則 因此 在重建 master 資料庫之前 請從用戶資料庫中導出所有數據

為資料庫中的所有對象生成腳本

使用適當的排序規則重新創建 master 資料庫

創建新的資料庫 使用新的默認排序規則自動創建新的資料庫

lishixin/Article/program/SQLServer/201311/22349

③ 如何修改SQL資料庫默認排序

在網上查了一些關於更改SQL SERVER2012資料庫安裝後的默認排序規則(Server Collation)的方法。經過實踐測試,把成功的方法記錄於此,方便大家查閱。具體的操作還是比較簡單的:1.首先打開命令提示符,即win+r,在彈出的窗口中輸入cmd即可進入命令提示符窗口;2.在命令提示符窗口中定位在你的SQL SERVER 2012安裝包的根目錄(注意:是SQL SERVER 2012的安裝包喲)如我的安裝在D盤的Download文件夾下的SQLSERVER2012SP1文件夾下,那麼就進行到SQLSERVER2012SP1這個目錄下3.最後運行如下命令:D:DownloadSQLServer2012SP1>Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS=account /SAPWD=xxxxxxxx /SQLCOLLATION=Chinese_PRC_CI_AS
即可更改SQL SERVER 2012的默認排序規則(Server Collation)。第三步中的參數說明:INSTANCENAME:資料庫的實例名,默認的就是:你的資料庫管理賬號SAPWD:sa賬戶的密碼,可選SQLCOLLATION:需要修改成的排序規則

④ SQl 中的排序規則什麼意思

你說的是查詢結果按某列的升序和降序排列嗎?
升序 order by [列名] asc(默認)
降序 order by [列名] desc

⑤ SQL查詢語句默認排序規律

select
a.*,b.*
(可以選擇欄位名稱,注意兩個表中重名的欄位一定要加a.或b.,其他不重名的可以不加,但是為了以後的拓展,最好都加)
from
[表A]
as
a
left
join
[表B]
as
b
on
a.$key=b.key
order
by
b.cid
desc
(這樣的話當b表中的b.key不在a表中的時候,b.*的欄位都是空的,如果想改成你期望的類型,可以使用isnull函數,比如isnull(b.key,0)或
isnull(b.key,'無').

⑥ SQL SERVER 2008 如何更改默認的排序規則

請問怎麼更改排序規則呢

1.sp_helpsort
SELECT SERVERPROPERTY ('Collation')
查看你的排序規則.
不過你的這個應該和字元集有關.

2.更改伺服器排序規則
更改 SQL Server 2005 實例的默認排序規則的操作可能會比較復雜,包括以下步驟:

確保具有重新創建用戶資料庫及這些資料庫中的所有對象所需的全部信息或腳本。
使用工具(例如大容量復制)導出所有數據。
刪除所有用戶資料庫。
重新生成在 setup 命令的 SQLCOLLATION 屬性中指定新的排序規則的 master 資料庫。例如:
復制代碼
start /wait setup.exe /qb INSTANCENAME=MSSQLSERVER REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=test SQLCOLLATION=SQL_Latin1_General_CP1_CI_AI
有關重新生成 master 資料庫的詳細信息,請參閱如何重新生成 SQL Server 2005 的 Master 資料庫。
創建所有資料庫及這些資料庫中的所有對象。
導入所有數據。
注意:
可以為創建的每個新資料庫指定默認排序規則,而不更改 SQL Server 2005 實例的默認排序規則。

3.設置和更改資料庫排序規則
創建新資料庫時,可以使用下列內容之一指定排序規則:
CREATE DATABASE 語句的 COLLATE 子句。
SQL Server Management Studio.
SQL 管理對象 (SMO) 中的 Database.Collation 屬性。
如果未指定排序規則,則使用伺服器排序規則。
可以使用 ALTER DATABASE 語句的 COLLATE 子句來更改在用戶資料庫中創建的任何新對象的排序規則。使用此語句不能更改任何現有用戶定義的表中列的排序規則。使用 ALTER TABLE 的 COLLATE 子句可以更改這些列的排序規則。
更改資料庫排序規則時,需要更改下列內容:
資料庫的默認排序規則,這一新的默認排序規則將應用於資料庫中後續創建的所有列、用戶定義的數據類型、變數和參數。根據資料庫中定義的對象解析 SQL 語句中指定的對象標識符時,也使用新的默認排序規則。
將系統表中的任何 char、varchar、text、nchar、nvarchar 或 ntext 列更改為使用新的排序規則。
將存儲過程和用戶定義函數的所有現有 char、varchar、text、nchar、nvarchar 或 ntext 參數和標量返回值更改為使用新的排序規則。
將 char、varchar、text、nchar、nvarchar 或 ntext 系統數據類型和基於這些系統數據類型的所有用戶定義的數據類型更改為使用新的默認排序規則。

SQL code :

1.將資料庫的字元集修改為:
alter database dbname collate Chinese_PRC_CI_AS

2.

--1. 為資料庫指定排序規則
CREATE DATABASE db COLLATE Chinese_PRC_CI_AS
GO

ALTER DATABASE db COLLATE Chinese_PRC_BIN
GO

/*====================================*/

--2. 為表中的列指定排序規則
CREATE TABLE tb(
col1 varchar(10),
col2 varchar(10) COLLATE Chinese_PRC_CI_AS)
GO

ALTER TABLE tb ADD col3 varchar(10) COLLATE Chinese_PRC_BIN
GO

ALTER TABLE tb ALTER COLUMN col2 varchar(10) COLLATE Chinese_PRC_BIN
GO

/*====================================*/

--3. 為字元變數和參數應用排序規則
DECLARE @a varchar(10),@b varchar(10)
SELECT @a='a',@b='A'

--使用排序規則 Chinese_PRC_CI_AS
SELECT CASE WHEN @a COLLATE Chinese_PRC_CI_AS = @b THEN '@a=@b' ELSE '@a<>@b' END
--結果:@a=@b

--使用排序規則 Chinese_PRC_BIN
SELECT CASE WHEN @a COLLATE Chinese_PRC_BIN = @b THEN '@a=@b' ELSE '@a<>@b' END
--結果:@a<>@b

3.

ALTER TABLE tb
ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CI_AS
--不區分大小寫
ALTER TABLE tb
ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CS_AS
--區分大小寫
資料庫
ALTER DATABASE database
COLLATE Chinese_PRC_CS_AS
--區分大小寫

ALTER DATABASE database COLLATE Chinese_PRC_CI_AS --不區分大小寫

方法一.安裝SQL時選擇區分大小寫
或安裝完以後重建mastar,選擇區分大小
C:\Program Files\Microsoft SQL Server\80\Tools\Binn\rebuildm.exe

方法二.sql server 8.0以上的版本才可以,7.0及其以下不支持
alter database 資料庫 COLLATE Chinese_PRC_CS_AS
修改排序規則,改成大小寫敏感的排序規則
如果只修改一個表,用alter table語句
如果修改一個庫的默認排序規則,用alter datebase語句
如果修改整個伺服器的默認排序規則,用Rebuildm.exe重建master庫
--指定排序規則就可以了

--示例
select replace('AbacB' collate Chinese_PRC_CS_AS_WS,'B','test')

--如果你是要求表支持,則可以建表時指定排序規則,這樣replace就不用寫排序規則了

--示例
create table tb(a varchar(20) collate Chinese_PRC_CS_AS_WS)
insert tb values('Abac')

select replace(a,'a','test') from tb

drop table tb

指定排序規則即可

Windows 排序規則名稱
在 COLLATE 子句中指定 Windows 排序規則名稱。Windows 排序規則名稱由排序規則指示器和比較風格構成。

語法
< Windows_collation_name > :: =

CollationDesignator_ <ComparisonStyle>

< ComparisonStyle > ::=
CaseSensitivity_AccentSensitivity
[_KanatypeSensitive [_WidthSensitive ] ]
| _BIN

參數
CollationDesignator

指定 Windows 排序規則使用的基本排序規則。基本排序規則包括:

當指定按字典排序時應用其排序規則的字母表或語言

用於存儲非 Unicode 字元數據的代碼頁。
例如 Latin1_General 或法文,兩者都使用代碼頁 1252,或土耳其文,它使用代碼頁 1254。

CaseSensitivity

CI 指定不區分大小寫,CS 指定區分大小寫。

AccentSensitivity

AI 指定不區分重音,AS 指定區分重音。

KanatypeSensitive

Omitted 指定不區分大小寫,KS 指定區分假名類型。

WidthSensitivity

Omitted 指定不區分大小寫,WS 指定區分大小寫。

BIN

指定使用二進制排序次序。

如果你只是目前查詢區分,那麼還是不要這樣改,免得又反悔,如此查詢:
select * from a
/*
a_nam a_add
---------- ----------
1 aa
1 bb
2 cc
2 vv
2 kk
3 dd
3 ee
4 dd
5 ee
6 yy
6 yy

(11 row(s) affected)
*/
現在我們查詢a_add = 'aa'的,'Aa'等等不行!
Example 1:

select * from a
where a_add collate Chinese_PRC_CS_AS_WS = 'aa'
/*
a_nam a_add
---------- ----------
1 aa

(1 row(s) affected)
*/

Example 2:

select * from a
where a_add collate Chinese_PRC_CS_AS_WS = 'Aa'
/*
a_nam a_add
---------- ----------

(0 row(s) affected)
*/

方法三.上面的記不住,那麼就用最笨的方法,轉化為ascii
select * from a
where
ascii(substring(a_add,1,1)) = ascii(substring('Aa',1,1))
and
ascii(substring(a_add,2,1)) = ascii(substring('Aa',2,1))
/*
a_nam a_add
---------- ----------

(0 row(s) affected)
*/

方法三:任何版本都可以
select * from a
where cast(a_add as varbinary(10))= cast('aa' as varbinary(10))

⑦ SQL server中如何更改排序規則

1、首先新建一個資料庫,如圖為test。

⑧ 資料庫默認的排序規則是怎樣的 還有 如果按照我想要的方式做排序要怎麼寫

你要求的排列沒有什麼規律呀。
一般都是用
order
by
欄位名
DESC
倒敘排列
或者order
by
欄位名
asc
正序排列
ORACEL的默認排序是
1、用了Oracle的堆表(如果你建表時候沒有指定表類型,默認就是堆表)
2、按照且僅按照一個有大量重復數據的欄位排序
而且oracle11G已經取消了這種默認的排序機制,目的就是為了能在最短的時間返回出結果給操作者。

⑨ SQL 中的collate Latin1_General_CS_AI是什麼意思

collate Latin1_General_CS_AI
就是使用Latin1_General_CS_AI這種排序規則。
Latin1_General_CS_AI是一個排序規則的名稱,是眾多排序規則中的一種。

----知識拓展.排序規則名稱----
排序規則名稱由兩部份構成,前半部份是指本排序規則所支持的字元集:比如:
Chinese_PRC_CS_AI_WS
前半部份:指UNICODE字元集,Chinese_PRC_指針對大陸簡體字UNICODE的排序規則。
排序規則的後半部份即後綴 含義:
_BIN 二進制排序
_CI(CS) 是否區分大小寫,CI不區分,CS區分
_AI(AS) 是否區分重音,AI不區分,AS區分
_KI(KS) 是否區分假名類型,KI不區分,KS區分
_WI(WS) 是否區分寬度 WI不區分,WS區分

----知識拓展.排序規則等級----
SQL Server中有4個級別的排序設置:
1.
伺服器級排序規則:
默認排序規則是在 SQL Server 安裝期間設置的,並且會成為系統資料庫的默認排序規則。
2.
資料庫級排序規則:
創建資料庫時,可以使用 CREATE DATABASE 語句的 COLLATE 子句指定默認的資料庫排序規則。如果未指定排序規則,則為該資料庫分配 model 資料庫的默認排序規則。model 資料庫的排序規則與 SQL Server 實例的默認排序規則相同。
3.
列級排序規則:
創建表時,可以使用 CREATE TABLE 語句的 COLLATE 子句指定每個字元串列的排序規則。如果未指定排序規則,則為該列分配資料庫的默認排序規則。
4.
表達式級排序規則:
表達式級排序規則在語句運行時設置,並且影響結果集的返回方式。這可以使 ORDER BY 排序結果特定於區域設置。使用如下的 COLLATE 子句可以實現表達式級排序規則:
SELECT name FROM customer ORDER BY name COLLATE Latin1_General_CS_AI

熱點內容
8uftp上傳網站 發布:2025-02-13 03:01:57 瀏覽:242
電腦玩游戲如何配置電源 發布:2025-02-13 03:01:53 瀏覽:361
微信怎麼上傳頭像不了 發布:2025-02-13 02:57:04 瀏覽:118
c語言矩陣的轉置 發布:2025-02-13 02:38:43 瀏覽:624
rowphp 發布:2025-02-13 02:37:16 瀏覽:711
光遇安卓服周年傘在哪裡領取 發布:2025-02-13 02:22:18 瀏覽:674
寫mv腳本軟體 發布:2025-02-13 02:21:56 瀏覽:696
超內核源碼 發布:2025-02-13 02:12:54 瀏覽:444
趣粉腳本 發布:2025-02-13 02:11:23 瀏覽:952
壓縮的茶葉怎麼弄開 發布:2025-02-13 02:11:16 瀏覽:739