【问题标题】:SQL Plus - Alias type questionSQL Plus - 别名类型问题
【发布时间】:2009-11-20 20:03:11
【问题描述】:

我需要为每本书的价格高于“HOR”类型的书的书价找到书的代码和书名。我的桌子是这样的

CREATE TABLE BOOK (
   BOOK_CODE CHAR(4) CONSTRAINT BOOK_BOOK_CODE_PK PRIMARY KEY, 
   TITLE VARCHAR2(40) CONSTRAINT BOOK_TITLE_NN NOT NULL, 
   PUBLISHER_CODE CHAR(2) CONSTRAINT BOOK_PUBLISHER_CODE_FK REFERENCES PUBLISHER(PUBLISHER_CODE),
   TYPE CHAR(3), (this is where the 'HOR' is located)
   PRICE NUMBER(4,2), 
   PAPERBACK CHAR(1) 
);

我尝试了几种不同的方法,但我不知所措。我假设我将不得不使用别名?

【问题讨论】:

  • 展示一些你尝试过但不起作用的方法。
  • 那行得通,但我不确定我明白为什么。当我尝试创建 100 个不同版本中的 1 个时,例如... SELECT MIKEC.BOOK_CODE、MIKEC.TITLE、MIKEC.TYPE、MIKEC.PRICE、BOOK.BOOK_CODE、BOOK.TITLE、BOOK.TYPE、BOOK.PRICE FROM BOOK , 在 MIKEC.PRICE > BOOK.PRICE 和 MIKEc.TYPE = 'HOR' 的地方预订 MIKEC;我选择了 59 行,但这似乎不对

标签: mysql sqlplus


【解决方案1】:

不一定。您可以像这样使用嵌套的 SELECT:

SELECT
    BOOK_CODE,
    TITLE
FROM
    BOOK
WHERE
    PRICE > (SELECT MAX(PRICE) FROM BOOK WHERE TYPE = 'HOR'))

【讨论】:

  • 您不应该回答这样的问题,直到原始发帖人展示了他们尝试过的无效方法。不费吹灰之力就给出答案是在鼓励人们不要学着自己做事;有一天,你或我最终可能不得不维护他们“编写”的代码,我不希望这种情况发生。
  • 相信我,我不想要答案,就像我想知道原因一样。相信我,你离维护我写的任何代码还有很长的路要走。我只是在学习。 SELECT MIKEC.BOOK_CODE, MIKEC.TITLE, MIKEC.TYPE, MIKEC.PRICE, BOOK.BOOK_CODE, BOOK.TITLE, BOOK.TYPE, BOOK.PRICE FROM BOOK, BOOK MIKEC WHERE MIKEC.PRICE > BOOK.PRICE 和 MIKEc.TYPE = 'HOR';我不确定为什么嵌套有效。
【解决方案2】:
SELECT a.book_code, a.title
FROM book a, book b
WHERE a.price > b.price
AND b.type = 'HOR'

可能吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-12
    • 1970-01-01
    • 1970-01-01
    • 2017-01-30
    • 2015-03-07
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多