-社壊人の物語-

徒然日記

PROFILE
えの


CATEGORY


RECENT ENTRIES


RECENT COMMENTS


RECENT TRACKBACKS


MONTHLY ARCHIVES


LINKS

SEARCH THIS SITE
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【--/--/-- (--) --:--】 スポンサー広告
このページの先頭へ
あなたなーらどうするー
SQLの話し。

テーブルAがある。
そのテーブルから、フィールドXとフィールドYをキーにして
あるレコードを抽出したい。

XとYには、それぞれ5桁の記号が入っている。
(NULLの場合も考えられるが)

条件は、「Xが"00000"でなく、Yが"00000"でない物」


例えば

 X      Y
①00000  00000
②NULL.   00000
③00000  NULL
④NULL.   NULL


上記の場合、②、③、④のレコードを抽出したい。



というのを踏まえて。
こーじからその時の条件をどうしたらいいかという相談を受けた。

こーじからのメッセージ
どうしよう…。わかんないよ。
たすけてえの

(時間あったら)



俺のメッセージ
(X || Y) <> '0000000000'



こーじからのメッセージ
ぬるだと 比較できないんで NVLつけますた(∩゚∀゚∩)



俺のメッセージ
soraのパクリじゃねぇかw
【2006/04/10 (Mon) 18:35】 Diary // TRACKBACK(0) // COMMENT(12)
このページの先頭へ
この記事に対するコメント
その条件おかしくね。

条件は、「Xが"00000"でなく、Yが"00000"でない物」
だったら、3は該当しないはず。

正しい条件は、「Xが"00000"でない、または、Yが"00000"でない物」
【2006/04/10 (Mon) 22:20】 URL // 浩康 #t5k9YYEY [ 編集 ]

または、だと①も②も③もだめなわけだよ。
②と③と④を抽出したいって提示してあるから
Xが"00000"でない、またはYが"00000"でない
しかし、どっちか一方が"00000"ならおkっていう
意味が含まれている。
【2006/04/10 (Mon) 23:00】 URL // えの #- [ 編集 ]

Xが"00000"でない、かつYが"00000"でない
って感じかね?

見た感じXとYが両方"00000"だけ抽出しなさそうだから
X=Y="00000" の条件に合わないものだけ
抽出とかは駄目かね?
他に条件とかあるなら別だけど。
あ、でもSQLわかんないから書き方は適当です。
【2006/04/11 (Tue) 10:31】 URL // ぴん #W3FWQxe2 [ 編集 ]

っ「Exist」
【2006/04/11 (Tue) 11:38】 URL // sentium #- [ 編集 ]

>ぴん
抽出条件の内容としては、その通り。
しかし、SQLの場合その条件式だと拾えないのよねぇ。

>せん
Existなにそれ美味しいの?
【2006/04/11 (Tue) 14:00】 URL // えの #- [ 編集 ]

「Xが"00000"でない、または、Yが"00000"でない物」
なら、2,3,4が抽出できると思うんだが・・・。

さらに、ぴんの、
かつ、だと、4しか抽出できないと思うんだが・・・。
【2006/04/11 (Tue) 20:24】 URL // 浩康 #t5k9YYEY [ 編集 ]

X <>"00000" OR Y <> "00000"
だと、どっちか一方が"00000"だと抽出できないから
両方NULLである、④しか抽出できないのよね。
【2006/04/11 (Tue) 20:51】 URL // えの #- [ 編集 ]

「Xが"00000"でない、かつYが"00000"でない」
確かにこれは変ですね。自分で書いておいてなんですけど。

「Xが"00000"でない、または、Yが"00000"でない物」
が正しい気がしてきました。

えのさんの
X <>"00000" OR Y <> "00000"
これで2,3,4が抽出できないかな。
X <> "00000" で 2,4 は条件を満たすよね。
X <> "00000" じゃないけど Y <> "00000" で
3 も条件満たすよね。ORだし。
うーん、どうだろ?

多分私が言いたかったのは
「Xが"00000"でない、かつYが"00000"でない」
じゃなくて
「Xが"00000"である、かつYが"00000"である でない場合」
か…?ややこしいな…。
【2006/04/12 (Wed) 11:01】 URL // ぴん #W3FWQxe2 [ 編集 ]

ぴんの言いたい事はわかる。
NOT ( X = "00000" AND Y = "00000" )
という事だろう。

しかし、これは結果的に
X <> "00000" OR Y = "00000"
になる。

だから敢えて、俺は
「Xが"00000"でない、かつYが"00000"でない」
という様に条件を提示したんだけど、
流石にこの1文だけ見るとおかしく感じるんだろうね。

んで、X <> "00000" で②と④が抽出できる。
そこまではOK。

問題は、Y <> "00000"をORで追加条件とした場合
X <> "00000"の抽出結果である、②と④の中から
Y <> "00000"で更に抽出をかける形になるので
④しか該当しなくなるわけだよ。
【2006/04/12 (Wed) 11:19】 URL // えの #- [ 編集 ]

念のため確認してみた。

BLOGには書いてなかったけど、こーじが作ったSQLが
X <> "00000" OR Y <> "00000"
で、抽出出来てなかったから前記の様な事を
言ってしまったわけだけど、それも変な話だよなぁと
思ったのでX <> "00000" OR Y <> "00000"の
XとYがNULLの場合0で比較すると付け加えた所
②、③、④が抽出出来た。

お騒がせしましt
【2006/04/12 (Wed) 11:30】 URL // えの #- [ 編集 ]

こういう場面で使うの微妙かもしれないけどね
select * from a A
where not Exsits(select * from a B where B.Key = A.Key and B.X = '00000' and B.X = '00000')
ぴんさんの X=Y='00000'をそのまま実現。
【2006/04/12 (Wed) 11:59】 URL // sentium #- [ 編集 ]

 要するに。。。。

こーじぱくるな(∩゚∀゚∩)!

ってことですか?
【2006/04/12 (Wed) 19:45】 URL // sora #- [ 編集 ]












管理者にだけ表示を許可する

このページの先頭へ
| BLOG TOP |
この記事に対するトラックバック
http://eno3.blog3.fc2.com/tb.php/624-332cb298
このページの先頭へ
/
Powered by FC2ブログ / Template by chocolat*
Copyright © 2005 徒然日記 All Rights Reserved.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。