如果我們在不能改資料庫設定的情況下,如何讓全形及半形的符號有所區隔呢?
直接用以下例子說明:
declare @txt nvarchar(200)
select @txt = '華,碩平,台【重裝火炮】DVD燒錄遊戲電腦'
select charindex(',', @txt)
select charindex(',', @txt COLLATE Chinese_Taiwan_Stroke_CI_AS_WS)
結果:
-----------
2
(1 個資料列受到影響)
-----------
5
(1 個資料列受到影響)
update:
如何執行區分全型/半型的sql select?
select * from aaa(nolock) where aaa_name like '%?%' COLLATE Chinese_Taiwan_Stroke_CI_AS_WS
-- COLLATE Chinese_Taiwan_Stroke_CI_AS_WS放在like的後面
重點就在於預設的COLLATE是Chinese_Taiwan_Stroke_CI_AS,改成Chinese_Taiwan_Stroke_CI_AS_WS就OK了,詳細請參考:
1.Windows Collation Name (Transact-SQL)
2.COLLATE (Transact-SQL)
3.Collation Precedence
4.定序對話方塊 (Visual Database Tools)
沒有留言:
張貼留言