以显示属于不同作者的书籍的方式进行查询
Posted
技术标签:
【中文标题】以显示属于不同作者的书籍的方式进行查询【英文标题】:Query in a way to show books that belong to different authors 【发布时间】:2021-09-22 21:03:30 【问题描述】:select subject, authors, authorID
from library with (nolock)
inner join authors with (nolock) bookid = bookauthorID
where subject = 'Russian History'
所以我想写一个查询来显示所有写过俄罗斯历史书籍的作者,如果有超过 2 个不同的作者写过这个主题,我想将列 categoryID 显示为“多个”,反之亦然作为“单身”。
例子:
CategoryID Author
2009940 Steve Cohen
从上面的 ID 中,它会返回为单一的,因为这个 ID 只有一个独特的作者。
最好使用count(min)
实现这一目标吗?
【问题讨论】:
是您的 select 语句中作者的实际列名吗? 停止使用nolock 溅射您的代码。这在任何地方都不是“最好的”。 【参考方案1】:您没有提供所需的输出,我也不相信您已为表/列共享了适当的对象,但您可以根据需要进行更改。
您只需要引用一个COUNT(DISTINCT columnName)
来查看它是否大于 1。
select
subject
, CASE WHEN COUNT(DISTINCT authors) = 1 THEN 'single'
WHEN COUNT(DISTINCT authors) > 1 THEN 'multiple'
END AS Authors
from library
inner join authors bookid = bookauthorID
where subject = 'Russian History'
GROUP BY subject
【讨论】:
以上是关于以显示属于不同作者的书籍的方式进行查询的主要内容,如果未能解决你的问题,请参考以下文章