- ベストアンサー
Accessでの検索で
和歌分類が恋で、和歌の上の句または下の句に恋の文字を含む和歌の作者名、和歌(上の句)、和歌(下の句)および和歌分類を求めよ。また、恋の和歌で恋の文字を含まない和歌を求める場合のSQLの変更点を示せ。 と言う課題をやっているのですが SELECT 和歌情報.和歌分類, 和歌情報.和歌(上の句), 和歌情報.和歌(下の句), 作者情報.作者名 FROM 作者情報 INNER JOIN 和歌情報 ON 作者情報.作者番号=和歌情報.作者番号 WHERE (((和歌情報.和歌分類)="恋") AND ((和歌情報.和歌(上の句)) Like "*恋*")) OR (((和歌情報.和歌分類)="恋") AND ((和歌情報.和歌(下の句)) Like "*恋*")); と前述の問題はわかるのですが 恋の文字を含まない和歌を求める方のがわかりません。。。 不確定なのであればNULLをいれるじゃないですか わざと特定のものを検索条件から外すにはどうすればいいのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
Like文の否定形は、 XXX Not Like "*恋*" となりますので、 (和歌分類="恋") AND ((和歌(上の句)) Like "*恋*") ⇒ (和歌分類="恋") AND ((和歌(上の句)) Not Like "*恋*") なります。 ※分類が恋で”恋”と言う文字を含まない なお、 (和歌分類="恋") AND ((和歌(上の句)) Like "*恋*") 以外としたい場合は、Not(xxx) ですべてをくくります Not ( (和歌分類="恋") AND ((和歌(上の句)) Like "*恋*") ) となります。 ※分類が恋で”恋”と言う文字を含むもの以外すべて
その他の回答 (3)
- O_cyan
- ベストアンサー率59% (745/1260)
条件を WHERE (((和歌情報.和歌分類)="恋") AND ((和歌情報.和歌(上の句)) Not Like "*恋*")) OR (((和歌情報.和歌分類)="恋") AND ((和歌情報.和歌(下の句)) Not Like "*恋*")); にすれば抽出できます。 一致しない除外値Notを使います。 なので Not Like "*恋*" または Not Like "%恋%" で恋を含まないレコードを抽出できます。
お礼
細かくありがとうございます
- imogasi
- ベストアンサー率27% (4737/17069)
SQL処理系によっては (1)Contains句 (2)Like %XXX% 両方あるようです。 たとえばhttp://www.okisoft.co.jp/esc/ora.html の「手順4について} 前置の Not で否定できたように思いますが.
お礼
ありがとう ございます 解決しました
- bonaron
- ベストアンサー率64% (482/745)
和歌(下の句) Not Like "*恋*" でよろしいのでは?
お礼
ありがとうございます 助かりました
お礼
細かくありがとうございます