有关SQL的一个查询操作,感觉不难,就是写不出正确sql。( ▼-▼ )

2020-04-03 16:33发布

case1:
数据:
A
A
A
查询出来是
A
=============
case2:
数据:
A
B
A
查询出来是
A
B
A
怎么用一个sql来实现包括上面两个case的查询呢?先谢谢了...

7条回答
我想做一个坏孩纸
2楼-- · 2020-04-03 16:48
SELECT DISTINCT * INTO #A FROM A
IF @@ROWCOUNT>1
BEGIN
    SELECT * FROM A
END
ELSE
BEGIN
    SELECT * FROM #A
END

可以把临时表改成表变量,表变量快一点

查看更多
我欲成王,谁敢阻挡
3楼-- · 2020-04-03 16:52

select column  from table  group by column having count(*)>1

查看更多
Fickle 薄情
4楼-- · 2020-04-03 16:59

不太理解你的需求

查看更多
三岁会撩人
5楼-- · 2020-04-03 16:59

这样的操作建议写一个存储过程,或是先在程序里判断好再发出SQL查询

先判断表里的值是否一致,如果是直接取第一行,速度比其他语句快很多,直接select top 1 * from 表

如果不至则直接select * from 表

查看更多
霸刀☆藐视天下
6楼-- · 2020-04-03 17:08

select t1.colunm from

(select colunm , row_number() as RowNum from table ) as t1 left join 

(select colunm , row_number() as RowNum + 1 from table ) as t2  on t1.RowNum  = t2.RowNum 

where t1.colunm != t2.colunm

 

你试试,大概就是这个思路,应该能实现

查看更多
Luminary・发光体
7楼-- · 2020-04-03 17:14

 你是要消除结果重复项?

查看更多
登录 后发表回答