レベルエンター山本大のブログ

面白いプログラミング教育を若い人たちに

BLOCKVROCKリファレンス目次はこちら

SQLクエリでのみ照合順序を変更する。

SQLServer2005で、SQLクエリのみで照合順序を変える方法



■準備
  「#」付きテーブルは同一セッション上でのみ有効な一時テーブル

create table #tbl 
( 
  data  varchar(2)
)
insert into #tbl 
select 'a' as data 
union ALL
select 'b' as data 
union ALL 
select 'c' as data 
union ALL
select 'A' as data 
union  ALL
select 'B' as data 
union  ALL
select 'C' as data 
union ALL
select 'A' as data 
union  ALL
select 'B' as data 
union  ALL
select 'C' as data 

■全角半角・大文字小文字を厳密に区別する場合

select (data) collate Japanese_CS_AS_KS_WS,  count(*) from #tbl 
group by (data) collate Japanese_CS_AS_KS_WS 

→結果

data count(*)
a 1
A 1
1
b 1
B 1
1
c 1
C 1


■全角半角・大文字小文字を厳密に区別しない場合

select data ,count(*) from #tbl 
group by (data) collate Japanese_CI_AS 

→結果

data count(*)
a 3
3
c 3