原文:sql點滴34—sql中的大小寫
預設情況下,sql server不區分大小寫,如果資料表test的tname列中有資料「abcd」和「abcd」, 如果使用查詢語句:select * from test where tname like 'a%',則查詢的結果會把上面的兩條記錄都查詢出來,這一點上和oracle有區別.
可以通過設定排序規使其區分大小寫,可以分別在建立資料庫、修改資料庫、建立表的字元型列(char\varchar\nchar
\nvarchar等)時指定排序規則來實現。如
create database test collate chinese_prc_cs_as --這樣建立的資料庫中區分大小寫
alter database test collate chinese_prc_cs_as --修改後的資料庫中區分大小寫
create table test(tid int primary key,tname varchar(20) collate chines_prc_cs_as) --這樣建立的tname列在使用select 語句時就可以區分大小寫了。
1.在建立資料庫時,指定要區分大小寫,或者後期再做更改也可以
alter database dbname collate chinese_prc_cs_as
2.在建立表時,指定要區分大小寫,或者後期再做更改也可以
alter table tbname collate chinese_prc_cs_as
3.如果只是想使用一次,不想修改整個表或整個資料庫。
3.1可以在使用時,將查詢或使用到的字段,轉成二進位制形式進行比較就可以了(大小寫的二進位制形式肯定是不一樣的~)
3.2可以在查詢或使用時,指名使用 簡體中文做為資料庫的查詢規則。 指定sql server的排序規則 chinese_prc指的是中國大陸地區,如果是台灣地區則為chinese_taiwan ci指定不區分大小寫,如果要在查詢時區分輸入的大小寫則改為cs as指定區分重音,同樣如果不需要區分重音,則改為ai collate可以針對整個資料庫更改排序規則,也可以單獨修改某乙個表或者某乙個欄位的排序規則,指定排序規則很有用,比如使用者管理表,需要驗證輸入的使用者名稱和密碼的正確性,一般是要區分大小寫的。
使用collate:
select * from 表 where 字段='king' collate chinese_prc_cs_as
或者 轉換為varbinary
select * from 表 where convert(varbinary(1000),字段)=convert(varbinary(1000),'king')
SQL點滴34 SQL中的大小寫
預設情況下,sql server不區分大小寫,如果資料表test的tname列中有資料 abcd 和 abcd 如果使用查詢語句 select from test where tname like a 則查詢的結果會把上面的兩條記錄都查詢出來,這一點上和oracle有區別.可以通過設定排序規使其區分...
SQL點滴34 SQL中的大小寫
原文 sql點滴34 sql中的大小寫 預設情況下,sql server不區分大小寫,如果資料表test的tname列中有資料 abcd 和 abcd 如果使用查詢語句 select from test where tname like a 則查詢的結果會把上面的兩條記錄都查詢出來,這一點上和ora...
SQL區分大小寫
排序規則 alter datebase alter datebase 資料庫 chinese prc bin alter table tb alter column colname nvarchar 100 collate chinese prc ci as 不區分大小寫 alter table t...