C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: SQL文でご質問


(過去ログ 42 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■22469 / inTopicNo.1)  SQL文でご質問
  
□投稿者/ 気合 (5回)-(2008/07/23(Wed) 23:10:24)

分類:[.NET 全般] 

SQL文で分からないことが出てきてしまいご質問させてください。

A 1
A 2
A 3
A 4
A 5
というテーブルがありAという値で数字の列(仮名にDATA)から2と5が両方ある場合、SQLの結果として1を ない場合0を返したいです。この例ですと1から5まであるので2と5両方あり1を結果として返すものです。GROUP BYなど駆使して試しましたが
上手くいきませんでした。
ご教授お願いできますでしょうか
引用返信 編集キー/
■22472 / inTopicNo.2)  Re[1]: SQL文でご質問
□投稿者/ やじゅ (496回)-(2008/07/23(Wed) 23:56:04)
やじゅ さんの Web サイト
2008/07/24(Thu) 09:53:33 編集(投稿者)

No22469 (気合 さん) に返信
> というテーブルがありAという値で数字の列(仮名にDATA)から2と5が両方ある場合、SQLの結果として1を ない場合0を返したいです。

未テスト なんかぐだぐだ

SELECT CASE COUNT(*) WHEN 2 THEN 1 ELSE 0 END
FROM
( 
SELECT MAX(A) FROM TEST WHERE DATA = 2
UNION ALL 
SELECT MAX(A) FROM TEST WHERE DATA = 5
)


★追記:

訂正 2と5が両方存在する場合だから、同一テーブルを2つ使うとこが味噌  
SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END
FROM TEST T1,TEST T2
WHERE T1.A = 2 AND T2.A = 5
引用返信 編集キー/
■22520 / inTopicNo.3)  Re[2]: SQL文でご質問
□投稿者/ 気合 (7回)-(2008/07/25(Fri) 00:57:24)
No22472 (やじゅ さん) に返信
> 2008/07/24(Thu) 09:53:33 編集(投稿者)
>
> ■No22469 (気合 さん) に返信
>>というテーブルがありAという値で数字の列(仮名にDATA)から2と5が両方ある場合、SQLの結果として1を ない場合0を返したいです。
>
> 未テスト なんかぐだぐだ
>
> SELECT CASE COUNT(*) WHEN 2 THEN 1 ELSE 0 END
> FROM
> ( 
> SELECT MAX(A) FROM TEST WHERE DATA = 2
> UNION ALL 
> SELECT MAX(A) FROM TEST WHERE DATA = 5
>
>
>
> ★追記:
>
> 訂正 2と5が両方存在する場合だから、同一テーブルを2つ使うとこが味噌  
> SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END
> FROM TEST T1,TEST T2
> WHERE T1.A = 2 AND T2.A = 5

なるほどです。有難うございました。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -