アプリ版:「スタンプのみでお礼する」機能のリリースについて

A1=0, A2=0, A3=0,  A4=0
B1=0, B2=0, B3=125, B4=0
C1=77, C2=0, C3=457, C4=0
D1=0, D2=5, D3=0, D4=0
E1=2, E2=0, E3=0, E4=0

SQLの条件文で4番目が0であって1~3番目までは0以外だったらTrueとなる処理はどうしたらいいいでしょうか?

いろいろ考えたのですがわかりません。

A 回答 (4件)

どういった、テーブルにどういうカラムがあるんでしょうか?


1番目とか、4番目の意味が分かりません。

もう少し、具体的に質問しないと・・・
    • good
    • 0

4番目のフィールドが0で、1番目から3番目までのフィールドが0でないと言うのでしたら、以下のようになると思います。



select * from table4
where fld1<>0 and fld2<>0 and fld3<>0 and fld4=0

テーブル:table4
フィールド:fld1,fld2,fld3,fld4
1レコード目の内容:0,0,0,0
2レコード目の内容:0,0,125,0
3レコード目の内容:77,0,457,0
4レコード目の内容:0,5,0,0
5レコード目の内容:2,0,0,0

示された「A1=0」などがAがレコード、1がフィールドの1番目と解釈して、上記のように展開しましたが、このデータですとどのレコードも参照されません。

「Trueとなる処理」を参照するための条件としてSELECT文を書きましたが、見当違いの回答でしたらお許しください。
    • good
    • 0

補足ですが



No2さんの回答は、1番目から3番目までのフィールドが『全て』0でない場合の回答ですね。
1番目から3番目までのフィールドの『いずれか』が0でない場合の回答は
Where句が次に変わります。

where ( fld1<>0 or fld2<>0 or fld3<>0 ) and fld4=0

No1さんもおっしゃっておられますが、やりたい事を明確に伝えないと
なかなか回答が付きにくいとおもいます。
    • good
    • 0

SQL内でtrue/falseを返すのではなくプログラム側で考えたらどうですか。



全件取ってきてループをまわし、そのなかで
・フィールド1~3 not= 0
・フィールド4 = 0
の条件判断をし、true/falseを返してその後の処理をする・・・。

そうしないと条件に合わないレコードは取れませんから。。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!