SELECT distinct ID from table结果
Letter
1 A
2 B当结果如上时,如何使select显示以下内容:
我的想法是什么,但还没有起作用:
SELECT CASE WHEN @@ROWCOUNT(ID) = 2 THEN 'AB'
ELSE ID END AS ID
FROM table结果将是
Letter
1 AB发布于 2015-01-16 22:28:18
尝试:
Select
CASE WHEN (ROW_NUMBER() OVER (ORDER BY [ID])) = 2 THEN 'AB'
ELSE [ID] END AS [ID]
FROM table
group by
[ID]仅当ID和'AB‘是相同的数据类型时,上面的内容才有效。如果不是,则需要在ELSE语句中将ID强制转换为varchar。应该是:ELSE cast([ID] as varchar(8)) END AS [ID]
发布于 2015-01-16 22:29:44
你的需求真的不清楚。
基于各种假设,这可能会给你想要的东西。
SELECT Count(*) OVER (PARTITION BY 937)
, CASE WHEN Count(*) OVER (PARTITION BY 937) = 2 THEN
'AB'
ELSE
id
END As id
, id
FROM your_table发布于 2015-01-16 22:29:18
我不确定你想要实现什么。但在我看来,这就是你正在尝试的..
Declare一个变量,用Distinct Count of ID对它进行initialize,并在select中使用它
Declare @cnt int
SELECT @cnt=count(distinct ID) from table
SELECT CASE WHEN @cnt = 2 THEN 'AB'
ELSE ID END AS ID
FROM tablehttps://stackoverflow.com/questions/27986021
复制相似问题