Sql 如何使存储过程更改SELECT上的返回值
我试图在不改变数据的情况下改变存储过程返回的内容。我试图让它在每次LinkItemType=3时返回1,但我总是得到语法错误。请帮忙 这是我的Sql 如何使存储过程更改SELECT上的返回值,sql,sql-server,stored-procedures,Sql,Sql Server,Stored Procedures,我试图在不改变数据的情况下改变存储过程返回的内容。我试图让它在每次LinkItemType=3时返回1,但我总是得到语法错误。请帮忙 这是我的 DECLARE @ITEMTYPE Int SELECT TOP 1000 [DataID] ,[ContactServiceID] ,[LinkID] ,@ITEMTYPE WHEN [LinkItemType] = 3 THEN @ITEMTYPE = 1 ELSE @ITEMTYPE = [LinkIte
DECLARE @ITEMTYPE Int
SELECT TOP 1000
[DataID]
,[ContactServiceID]
,[LinkID]
,@ITEMTYPE
WHEN [LinkItemType] = 3 THEN @ITEMTYPE = 1 ELSE @ITEMTYPE = [LinkItemType]
FROM
[BCM2010].[dbo].[EntityReferences]
WHERE
dataid = 54
ORDER BY
LinkItemType DESC
劳伦斯说的是对的。您正在寻找的可能是: (注意,我没有使用您的变量)
您没有提到哪个品牌的SQL,但请在[LinkItemType]=3时尝试
案例,然后在[LinkItemType]=1时尝试其他[LinkItemType]结束
我尝试过,但出于某种原因,LinkItemType=3的记录停止被选中。
SELECT TOP 1000 [DataID]
,[ContactServiceID]
,[LinkID]
,ITEMTYPE = CASE WHEN [LinkItemType] = 3 THEN 1 ELSE [LinkItemType] END
FROM [BCM2010].[dbo].[EntityReferences]
WHERE dataid = 54
ORDER BY ITEMTYPE DESC