2013-09-16 4 views
0

Ive пытался IN, множественные, как положения и т.д.несколько подобных предложений? SQL

Проблема: Список книг, изданных Jove, Пингвин, Плам и Scholastic. Организуйте по названию внутри издателя.

ДЕСК стол

SQL> убывание книга

Name 
------------------ 
BOOK_CODE 
TITLE 
PUBLISHER_CODE 
TYPE 
PRICE 
PAPERBACK 

SQL Ive пытался

SQL> select * from BOOK where Publisher_Code IN(JP,PE,PL,SS) 
    2 group by Publisher_code, title; 

SQL> select * from BOOK 
    2 where PUBLISHER_CODE IN('%JP%', '%PE%','%PL%', '%SC%') 
    3 group by title, Publisher_code; 


SQL> select * from book 
    2 where Publisher_code like '%JP%' 
    3 OR where Publisher_code like '%PE%' 
    4 OR where Publisher_code like '%PL%' 
    5 OR where Publisher_code like '%SC%' 
    6 group by Publisher_code 
    7 order by title; 
+0

Я не думаю, что 'oracle' разрешил бы использовать этот тип' GROUP BY'. Вы уверены, что не работаете с MySQL? – Kermit

ответ

4

Неясно, почему вы используете group by. Вы хотите order by. Ваши примерные запросы имеют очень простые ошибки SQL, такие как повторение ключевого слова where в запросе. Вот версия, которая, кажется, что вы хотите:

select b.* 
from book b 
where b.Publisher_code like '%JP%' or 
     b.Publisher_code like '%PE%' or 
     b.Publisher_code like '%PL%' or 
     b.Publisher_code like '%SC%' 
order by b.Publisher_code, b.Title; 

Как примечание: предположительно коды издателя являются константами, и вам не нужно использовать like с групповым символом.

+0

Спасибо! Я использовал группу, чтобы попытаться отличить от кода и названия. –

+1

@BrianWilson. , , Вы используете 'group by' для агрегирования данных в меньшее количество строк. Используйте 'order by', чтобы поместить вещи в пратикулярный порядок. –

Смежные вопросы