dポイントプレゼントキャンペーン実施中!

SQLで○○の値以外を持っているレコードを抽出しないという条件を作りたいのですが・・・
例えばこんな感じのテーブルがあったとします。

A1 A2 A3
-- -- --
AAA AA 111
AAA AB 111
AAA BB 222
BBB BB 111
CCC AA 111
CCC AC 555
DDD BB 222
EEE AA 111
EEE AC 333
EEE BB 777


A2の列に「BB」の値"しか"持っていないレコードを抽出したいのです

このテーブルで言えば返りは
BBB BB 111
DDD BB 222
と期待しています。

値BBのみしか持ってない条件の作り方を御教示願えませんでしょうか。
また、A2の値も文字数以外は規則性があるわけではないので無限パターンです。
詳しい方よろしくお願いします。

A 回答 (12件中11~12件)

>A2の列に「BB」以外の値を持ったA1列データは排除して「BB」の値"しか"持っていないレコードを抽出



だから、何でAAAとEEEが対象にならないのか上記説明で表現出来ていますか?
論理的に正しく説明できない限りプログラムは組む事が出来ません。

まあ、無理やりっていうのなら

select * from テーブル名 where A1 BETWEEN 'BBB' AND 'DDD'
AND A2 = 'BB';

みたいな構文にはなるんでしょうけど。(適当に書いてるので検証はしてませんけど)
    • good
    • 0
この回答へのお礼

うまく通じずすみません

お礼日時:2010/09/15 20:53

SELECT文の構文規則読んでも理解出来ないでしょうか?



普通、あなたの示された
>A2の列に「BB」の値"しか"持っていないレコードを抽出

なら、もちろん
select * from テーブル名 where A2 = 'BB';

となるでしょう?

そういう話じゃないのなら、もう少し補足説明お願い致します。

http://cyberam.dip.jp/database/postgres/sql/sele …

この回答への補足

少し言葉足らずでした・・・
A2の列に「BB」以外の値を持ったA1列データは排除して「BB」の値"しか"持っていないレコードを抽出

期待値のように出てくれるとうれしいのです。
BBB BB 111
DDD BB 222


ご回答のクエリでは例示したテーブルの中から抽出すると
AAA BB 222
BBB BB 111
DDD BB 222
EEE BB 777
となってしまいます。

補足日時:2010/09/14 21:56
    • good
    • 0

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