我有一些带有不同数据的表,但是它们具有相同的列UserId
:
如果您这样声明:
declare @Type nvarchar(max) = 'Video';
declare @Id nvarchar(max)='M00000000007199';
declare @UserIdTable TABLE (UserId bigint)
然后我想将值插入@UserIdTable
by中@Type
,并且我成像了:
insert into @UserIdTable
case when @Type=Video then
select UserId from VideoTable
else
select UserId from TvTable
end
我知道那是错误的,对于该问题我该怎么办?
CASE
T-SQL中的表达式是可以返回值的表达式-它不是C#或VB.NET中的流控制语句,并且不能包含SQL语句或代码块。
您需要重写代码以使用常规IF .. THEN ... ELSE
语句-类似于以下内容:
IF @Type = Video
INSERT INTO @UserIdTable
SELECT UserId FROM dbo.VideoTable
ELSE
INSERT INTO @UserIdTable
SELECT UserId FROM dbo.TvTable
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句