SELECT distinct ID from table
结果
Letter
1 A
2 B
如果结果如上所示,如何使选择显示以下内容:
我在想什么但还没有工作:
SELECT CASE WHEN @@ROWCOUNT(ID) = 2 THEN 'AB'
ELSE ID END AS ID
FROM table
结果将是
Letter
1 AB
答案 0 :(得分:1)
尝试:
Select
CASE WHEN (ROW_NUMBER() OVER (ORDER BY [ID])) = 2 THEN 'AB'
ELSE [ID] END AS [ID]
FROM table
group by
[ID]
如果[ID]和“AB”是相同的数据类型,上述内容也将起作用。如果没有,那么您需要将[ID]转换为ELSE语句中的varchar。那就是:ELSE cast([ID] as varchar(8)) END AS [ID]
答案 1 :(得分:1)
您的要求确实不清楚。
根据各种假设,可能会为您提供所需的内容。
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
答案 2 :(得分:0)
我不确定你想要达到的目标。但对我而言,这看起来就像你正在尝试的那样......
Declare
变量initialize
Distinct Count
ID
select
并在Declare @cnt int
SELECT @cnt=count(distinct ID) from table
SELECT CASE WHEN @cnt = 2 THEN 'AB'
ELSE ID END AS ID
FROM table
中使用
{{1}}