0

我试过 IN,多个类似的子句等。

问题: 列出 Jove、Penguin、Plume 和 Scholastic 出版的书籍。在出版商内按标题组织。

描述表

SQL> 描述书

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

我试过的sql

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;
4

1 回答 1

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通配符。

于 2013-09-16T00:35:04.393 回答