串联 - 名字和姓氏相同的列 (Oracle SQL)
Posted
技术标签:
【中文标题】串联 - 名字和姓氏相同的列 (Oracle SQL)【英文标题】:Concatenation - First Name and Last Name Same Column (Oracle SQL) 【发布时间】:2016-05-25 01:32:39 【问题描述】:对 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 似乎停止返回任何查询结果。我必须重新启动它,然后查询才能工作。
【参考方案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
【讨论】:
以上是关于串联 - 名字和姓氏相同的列 (Oracle SQL)的主要内容,如果未能解决你的问题,请参考以下文章