【发布时间】:2011-11-09 10:48:47
【问题描述】:
我在使用 select 语句在 CASE 语句中设置返回值时遇到问题……有人可以看看吗?
DECLARE @SystemTypeId int
SELECT @SystemTypeId = [SystemTypeId] FROM [Properties] WHERE [Id] = @PropertyId
SET @RETURN_VAL =
CASE @SystemTypeId
WHEN 2 THEN (SELECT [Created] FROM [Assets] WHERE [Id] = @AssetId)
WHEN 3 THEN (SELECT dbo.GetAssetValueById([CreatedBy])
FROM [Assets]
WHERE [Id] = @AssetId)
WHEN 9 THEN (SELECT [LastModified]
FROM [Assets]
WHERE [Id] = @AssetId)
ELSE NULL
END
【问题讨论】:
-
第一步是声明
@AssetID -
@AssetId 已经在上面声明了。
-
似乎无论@SystemTypeId 是什么,总是选择案例2。
-
嗯..你确定吗?您是否真的通过“打印@SystemTypeID”测试了@SystemTypeID 的值?
标签: sql tsql stored-procedures case