因此,如果我删除所有SET @Chars行,那么下面的内容非常有用,不知何故,@ Chars未被拾取。通过直接设置变量并逐个测试来测试,所以代码很好,变量设置部分有问题。非常感谢任何提示,谢谢
这是我的代码:
\p{InCyrillic}
答案 0 :(得分:1)
您错放了BEGIN
声明
IF @WorkC = 'Cut'
BEGIN
SET @WorkC2 = '%Cut%'
SET @Chars = 4
END
Yough,您可以一起删除BEGIN
和END
。
IF @WorkC = 'Cut'
SET @WorkC2 = '%Cut%'
SET @Chars = 4
但通常情况下,这可以通过CASE
语句更清晰地完成。
select
@WorkC2 = case
when @WorkC = 'Cut' then '%Cut%'
when @WorkC = 'Frame' then '%Frame%'
...
end
,@Chars = case
when @WorkC = 'Cut' then 4
when @WorkC = 'Frame' then 6
...
end
但是,您可以删除@WorkC
并使用连接显式设置它并保存大量的文字:
set @WorkC = '%' + @WorkC + '%'
并且,更容易设置@Chars
...请注意,您需要在之前在每端添加%,或者如果您在<%>之后执行此操作,请将其设为-1 / p>
set @Chars = len(@WorkC) + 1
答案 1 :(得分:1)
您需要将BEGIN放在IF语句中,如下所示:
IF @WorkC = 'Cut'
BEGIN
SET @WorkC2 = '%Cut%'
SET @Chars = 4
END
IF @WorkC = 'Frame'
BEGIN
SET @WorkC2 = '%Frame%'
SET @Chars = 6
END
...