• ベストアンサー

Accessでの検索で

和歌分類が恋で、和歌の上の句または下の句に恋の文字を含む和歌の作者名、和歌(上の句)、和歌(下の句)および和歌分類を求めよ。また、恋の和歌で恋の文字を含まない和歌を求める場合のSQLの変更点を示せ。 と言う課題をやっているのですが  SELECT 和歌情報.和歌分類, 和歌情報.和歌(上の句), 和歌情報.和歌(下の句), 作者情報.作者名 FROM 作者情報 INNER JOIN 和歌情報 ON 作者情報.作者番号=和歌情報.作者番号 WHERE (((和歌情報.和歌分類)="恋") AND ((和歌情報.和歌(上の句)) Like "*恋*")) OR (((和歌情報.和歌分類)="恋") AND ((和歌情報.和歌(下の句)) Like "*恋*")); と前述の問題はわかるのですが 恋の文字を含まない和歌を求める方のがわかりません。。。 不確定なのであればNULLをいれるじゃないですか わざと特定のものを検索条件から外すにはどうすればいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#21550
noname#21550
回答No.3

Like文の否定形は、  XXX Not Like "*恋*" となりますので、  (和歌分類="恋") AND ((和歌(上の句)) Like "*恋*")   ⇒ (和歌分類="恋") AND ((和歌(上の句)) Not Like "*恋*") なります。 ※分類が恋で”恋”と言う文字を含まない なお、  (和歌分類="恋") AND ((和歌(上の句)) Like "*恋*") 以外としたい場合は、Not(xxx) ですべてをくくります Not ( (和歌分類="恋") AND ((和歌(上の句)) Like "*恋*") ) となります。 ※分類が恋で”恋”と言う文字を含むもの以外すべて

Robin5959
質問者

お礼

細かくありがとうございます

その他の回答 (3)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.4

条件を WHERE (((和歌情報.和歌分類)="恋") AND ((和歌情報.和歌(上の句)) Not Like "*恋*")) OR (((和歌情報.和歌分類)="恋") AND ((和歌情報.和歌(下の句)) Not Like "*恋*")); にすれば抽出できます。 一致しない除外値Notを使います。 なので Not Like "*恋*" または Not Like "%恋%" で恋を含まないレコードを抽出できます。

Robin5959
質問者

お礼

細かくありがとうございます

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

SQL処理系によっては (1)Contains句 (2)Like %XXX% 両方あるようです。 たとえばhttp://www.okisoft.co.jp/esc/ora.html の「手順4について} 前置の Not で否定できたように思いますが.

Robin5959
質問者

お礼

ありがとう ございます  解決しました

  • bonaron
  • ベストアンサー率64% (482/745)
回答No.1

和歌(下の句) Not Like "*恋*" でよろしいのでは?

Robin5959
質問者

お礼

ありがとうございます 助かりました