• 締切済み

SQLの条件分の質問です

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となる処理はどうしたらいいいでしょうか? いろいろ考えたのですがわかりません。

みんなの回答

  • japan_3
  • ベストアンサー率0% (0/2)
回答No.4

SQL内でtrue/falseを返すのではなくプログラム側で考えたらどうですか。 全件取ってきてループをまわし、そのなかで ・フィールド1~3 not= 0 ・フィールド4 = 0 の条件判断をし、true/falseを返してその後の処理をする・・・。 そうしないと条件に合わないレコードは取れませんから。。

  • nitorin
  • ベストアンサー率55% (11/20)
回答No.3

補足ですが No2さんの回答は、1番目から3番目までのフィールドが『全て』0でない場合の回答ですね。 1番目から3番目までのフィールドの『いずれか』が0でない場合の回答は Where句が次に変わります。 where ( fld1<>0 or fld2<>0 or fld3<>0 ) and fld4=0 No1さんもおっしゃっておられますが、やりたい事を明確に伝えないと なかなか回答が付きにくいとおもいます。

  • dell_OK
  • ベストアンサー率13% (766/5720)
回答No.2

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文を書きましたが、見当違いの回答でしたらお許しください。

  • masa6272
  • ベストアンサー率66% (93/140)
回答No.1

どういった、テーブルにどういうカラムがあるんでしょうか? 1番目とか、4番目の意味が分かりません。 もう少し、具体的に質問しないと・・・

関連するQ&A