我有一个User表,如果输入的companyID等于companyID,则显示User的名称,所有其他名称显示为XXXXX。我需要一种方法将它设置为“名称”(字面意思是单词名称),然后是一个递增的数字,表示有多少。
select
case when t1.CompanyID = @id then t1.name else
(
'XXXXX'
)
end as Name
输入148显示
我想展示这个,等等更多的名字(name3,name4等):
答案 0 :(得分:0)
以foo
作为您的表格的名称,然后这可行(请参阅on Implementing a Shell):
SET @id = 142;
SET @i = 0;
select
companyID,
CASE WHEN foo.CompanyID = @id
THEN foo.name
ELSE (Concat('Name',@i := @i+1))
END as Name
FROM foo;
答案 1 :(得分:0)
请试试。
select [CompanyID],
case when([CompanyID]=@Id) then 'Name' +
convert(nvarchar,ROW_NUMBER() OVER(ORDER BY Name DESC)) else Name end as Name
from [dbo].[Table_1]
order by [CompanyID]