如何在数据库系统sql server的同一列中检查单元格是否具有相同的值?

时间:2013-03-23 18:11:03

标签: sql database

我有问题要知道两个或多个单元格是否具有相同的值。 例如: 列包含作者姓名,另一列包含居住的城市。 我想知道住在同一个城市的作者的名字.. 所以我想查看city列,知道是否有相同的城市,但我不知道语法.. :)

select authors.au_fname , authors.au_lname ,city -- to present the first & last name of author
from authors
Where -- I don't know the condition here 

2 个答案:

答案 0 :(得分:1)

select a1.au_fname , a1.au_lname, a2.au_fname , a2.au_lname, city    
from authors a1 inner join authors a2 on a1.id <> a2.id
where a1.city= a2.city

<强>解释

必须比较两位作者的每个组合,因此该表在不同的主键上自行连接(我假设authors.id)。最后,where指出只有同一城市的作者才会被输出,过滤掉不在同一城市的作家巴黎。

答案 1 :(得分:0)

我想你只想按城市排序:

select authors.au_fname , authors.au_lname ,city -- to present the first & last name of author
from authors
order by city

如果您只想选择拥有2位或更多作者的城市,那么这里有一种适用于任何数据库的方式:

select authors.au_fname , authors.au_lname ,city -- to present the first & last name of author
from authors
where city in (select city from authors group by city having count(*) >= 2)
order by city