SQLServerのクエリでカラムをスプリットしたい場合は、CHARINDEX関数とSUBSTRING関数を組み合わせて使う。

対象テーブル A

B
1 2 3 4
1234

クエリ

select * from A;

select charindex(' ', B) from A;

select case when charindex(' ', B) = 0 then B else substring(B, 1, charindex(' ', B)) end from A;

結果

B
--------------------------------------------------
1 2 3 4
1234

(2 件処理されました)

-----------
2
0

(2 件処理されました)

--------------------------------------------------
1
1234

(2 件処理されました)

他の文字列操作関数は 文字列関数 (Transact-SQL)で参照できる。

カテゴリー: 技術情報

2件のコメント

koreyasu · 2007-05-30 04:15

さすがに複数個には分割できないか(笑

squld · 2007-05-30 09:31

substringした右辺をさらにcharindex & substringすればできるだろうけど、区切り文字が足りない場合を考慮すると、恐ろしいクエリになりそうだ・・・。

現在コメントは受け付けていません。