0

我正在尝试更改存储过程返回的内容而不更改数据。我试图让它在每次 LinkItemType = 3 时返回 1,但我不断收到语法错误。请帮忙。

这就是我所拥有的。

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
4

1 回答 1

2

劳伦斯说的是对的。您正在寻找的可能是:

(注意,我没有使用你的变量)

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
于 2012-11-13T00:28:44.833 回答