我需要创建一个存储过程,它将调用exec语句从表中选择一个列。我需要在其中包含一个case和like语句。我无法获得正确的语法。我得到了错误" 123"附近的语法不正确。
declare @sql varchar(1000)=''
set @sql='exec(''
select
case
when col like ''123%'' then ''123''
when col=''234'' then ''234''
else 'Other'
end as col from table'')'
答案 0 :(得分:1)
我希望语法是这样的:
declare @sql varchar(1000) = '';
set @sql = ;
select (case when col like ''123%'' then ''123''
when col =''234'' then ''234''
else 'Other'
end) as col
from . . .
';
exec sp_executesql @sql;
您的代码引用了col
,它需要来自某个地方。因此,from
条款。
答案 1 :(得分:0)
您是否尝试这样做:
declare @sql varchar(1000)=''
set @sql= 'select case
when col like ''123%'' then ''123''
when col=''234'' then ''234''
else ''Other''
end as col
from table'
EXEC (@sql)