2016-10-07 7 views
0

私はこの質問があります: ムービー(名前、ジャンル、分類)の詳細を表示するSQLステートメントを作成します。 「犯罪」ではなく、名前が単一の単語ではない映画のみを表示します(たとえば、「ライオン」は1語の映画名ですが、「自殺集団」は1語ではありません)。私のSQLコードを修正するのに役立つ

私はユニオンステートメントを使用する必要があると思いますが、私がやっていることは機能していません。

SELECT MOVIEGENRE, MOVIENAME 
FROM MOVIE 
WHERE MOVIEGENRE NOT LIKE '%CRIME%' 

UNION 

SELECT MOVIENAME, MOVIEGENRE 
FROM MOVIE 
WHERE MOVIENAME NOT LIKE '% %'; 

誰でもお手伝いできますか?

私はこの出力を得続ける:

MOVIEGENRE   MOVIENAME   
-------------------- -------------------- 
ADVENTURE   PETES DRAGON   
ANIMATION   FINDING DORY   
CRIMINAL    CRIME    
HORROR    LIGHTS OUT   
HORROR    THE CONJURING 2  
NERVE    CRIME 

ところで1年UNIの学生イム:)

+2

どのデータベース(MySQL、SQL Serverなど)を使用していますか? –

答えて

1

ただ、単一WHERE句にフィルタリングするためにあなたの二つの条件を組み合わせて:

SELECT MOVIEGENRE, 
     MOVIENAME 
FROM MOVIE 
WHERE MOVIEGENRE NOT LIKE '%CRIME%' AND -- not crime based 
     MOVIENAME LIKE '% %'    -- name is two or more words 
+0

はい、これは私の問題を解決していただきありがとうございます。 :) – Marissak

0

これを試してみてください:

SELECT MOVIEGENRE, MOVIENAME 
FROM MOVIE 
WHERE MOVIEGENRE NOT LIKE '%CRIME%' 
AND INSTR(MOVIENAME,' ',1,1)=0 

あなたはすべてちょうど組合を必要とせず、条件があります十分な。

0

あなたがSQL Serverを使用している場合は、以下のスクリプトを使用してください。

SELECT MOVIEGENRE, MOVIENAME 
FROM MOVIE 
WHERE MOVIEGENRE NOT LIKE '%CRIME%' --Getting MOVIEGENRE which is not crime 
AND LTRIM(RTRIM(MOVIENAME)) like '% %' --Getting MOVIENAME contains more than one word 
関連する問題