【问题标题】:Concatenation - First Name and Last Name Same Column (Oracle SQL)串联 - 名字和姓氏相同的列 (Oracle SQL)
【发布时间】:2023-04-02 20:06:01
【问题描述】:

对 Oracle SQL 来说是全新的,话虽如此:

尝试在与“作者”相同的列中显示作者的名字和姓氏以及该作者撰写的书籍数量(按作者名字升序排列)。

SELECT AUTHOR.FNAME || ' ' || AUTHOR.LNAME AS "Author",
COUNT(BOOKAUTHOR.AUTHORID) AS "Books written"
FROM BOOKS
INNER JOIN BOOKAUTHOR ON BOOKS.ISBN = BOOKAUTHOR.ISBN
INNER JOIN AUTHOR ON BOOKAUTHOR.AuthorID = AUTHOR.AuthorID
ORDER BY AUTHOR.FNAME ASC

连接似乎不起作用,并且整个查询存在问题。

以下是相关的表格:

图书:ISBN、TITLE

作者:AUTHORID、LNAME、FNAME

图书作者:ISBN、AUTHORID

即使我尝试只使用 SELECT 和 FROM 进行简单的连接,它也不会显示任何结果。

例如:

SELECT FNAME || ' ' || LNAME "AUTHOR NAME"
FROM AUTHOR

【问题讨论】:

  • 您确定您的作者表中有任何行吗?您是否尝试使用 AS 进行第二个查询
  • 实际上第二个查询现在有效。运行一段时间后,我的 oracle 似乎停止返回任何查询结果。我必须重新启动它,然后查询才能工作。

标签: join count concatenation


【解决方案1】:

试试这个:

SELECT CONCAT(CONCAT(AUTHOR.FNAME, ' '),
      AUTHOR.LNAME) AS "AUTHOR" 
COUNT(BOOKAUTHOR.AUTHORID) AS "Books written"
FROM BOOKS
INNER JOIN BOOKAUTHOR ON BOOKS.ISBN = BOOKAUTHOR.ISBN
INNER JOIN AUTHOR ON BOOKAUTHOR.AuthorID = AUTHOR.AuthorID
ORDER BY AUTHOR.FNAME ASC

【讨论】:

    猜你喜欢
    • 2013-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多