- - PR -
SqlServer2000で文字式評価
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-03-24 12:26
こんにちは。SqlServer2000で質問があります。
仮に、Sampleというテーブルがあり、A,Bというフィールドがあり、Aというフィールドの値が、二文字のアルファベットと4桁の数値からなり、Bは適当な数値からなるとします。 A:AB0001,AC0002,ZZ9999など B:1,23456,9999など このテーブルの出力に際して、Aの先頭二文字のアルファベットが、例えば'AA'のときBをそのまま出力し、それ以外は0を出力するということをやりたいのです。 調べてみたところ、NULLIFという関数があり、文字式が等しければNULL、それ以外は一つ目の引数に設定した値を、返す関数がみつかったので、 NULLIF( SUBSTRING( [A] , 1 ,2 ) , 'AA' ) 上の値がNULLなら1、それ以外は0を返す関数を作って、仮にSampleFunctとしますが、 SELECT SampleFunc( SUBSTRING( [A] , 1 ,2 ) , 'AA' ) * [ B ] とすれば良いのかなあと思っているのですが、微妙にオーバーヘッドが気になります。 ちょっと調べてみたのですが、文字式を0か1で評価してくれる関数はないように思えるのですが、何か良い方法はありませんでしょうか? | ||||
|
投稿日時: 2008-03-24 12:36
CASE文で良いのでは?
| ||||
|
投稿日時: 2008-03-24 12:46
でいいのでは? SUBSTRING(A,1,2)が、nullになるケースもあるのでしょうか?もしあるなら、その場合は 何を返したいですか? | ||||
|
投稿日時: 2008-03-24 13:28
CASE というのがあるのですね。CASE自体はリファレンスにあったのですが、使い方が良くわからずスルーしていました。
大変助かりました。スッキリです。 |
1