Sql server SQL Server中的情况 SET@Result=@KriteriumTekst+ CASE@Operator 当“它”然后“ 当“不”时,则“ 当'EQ'然后'=' +@Verdi+ 提尔斯坦德酒店 当'OG'然后'AND' 当“埃勒”然后“或”
此语句未编译,可能是什么问题。您正在模拟Sql server SQL Server中的情况 SET@Result=@KriteriumTekst+ CASE@Operator 当“它”然后“ 当“不”时,则“ 当'EQ'然后'=' +@Verdi+ 提尔斯坦德酒店 当'OG'然后'AND' 当“埃勒”然后“或”,sql-server,Sql Server,此语句未编译,可能是什么问题。您正在模拟案例表达式的结尾: SET @Result = @KriteriumTekst + CASE @Operator WHEN 'LT' THEN '<' WHEN 'GT' THEN '>' WHEN 'NE' THEN '<>' WHEN 'EQ' THE
案例
表达式的结尾
:
SET @Result = @KriteriumTekst +
CASE @Operator
WHEN 'LT' THEN '<'
WHEN 'GT' THEN '>'
WHEN 'NE' THEN '<>'
WHEN 'EQ' THEN '='
+ @Verdi +
CASE @Tilstand
WHEN 'OG' THEN 'AND'
WHEN 'ELLER' THEN 'OR'
SET@Result=@KriteriumTekst+CASE@运算符,当'LT'时,然后''
当“不”时,则“
当'EQ'然后'='
结束
+@Verdi+CASE@Tilstand当'OG'然后'AND'
当“埃勒”然后“或”
结束
您需要终止案例陈述:
SET @Result= @KriteriumTekst+CASE @Operator WHEN 'LT' THEN '<'
WHEN 'GT' THEN '>'
WHEN 'NE' THEN '<>'
WHEN 'EQ' THEN '='
END
+@Verdi+ CASE @Tilstand WHEN 'OG' THEN 'AND'
WHEN 'ELLER' THEN 'OR'
END
SET@Result=@KriteriumTekst+CASE@运算符,当'LT'时,然后''
当“不”时,则“
当'EQ'然后'='
结束
+@Verdi+CASE@Tilstand当'OG'然后'AND'
当“埃勒”然后“或”
结束
每个案例
都需要结束
关键字():
declare@result-nvarchar(256)
声明@KriteriumTekst nvarchar(256)
声明@Operator nvarchar(256)
声明@Verdi nvarchar(256)
声明@Tilstand nvarchar(256)
设置@KriteriumTekst='Tekst'
set@Operator='LT'
设置@Verdi='Verdi'
设置@Tilstand='OG'
设置@Result=@KriteriumTekst+CASE@运算符时的“LT”然后“”
当“不”时,则“
当'EQ'然后'='结束时
+@Verdi+CASE@Tilstand当'OG'然后'AND'
当“ELLER”然后“ELLER”或“END”
选择@result
正如评论中所指出的,您的案例需要以END
除此之外,如果@Operator
为“LT”,而@Tilstand
为“OG”,则结果如下
declare @result nvarchar(256)
declare @KriteriumTekst nvarchar(256)
declare @Operator nvarchar(256)
declare @Verdi nvarchar(256)
declare @Tilstand nvarchar(256)
set @KriteriumTekst = 'Tekst '
set @Operator = 'LT'
set @Verdi = 'Verdi '
set @Tilstand = 'OG'
SET @Result= @KriteriumTekst+CASE @Operator WHEN 'LT' THEN '<'
WHEN 'GT' THEN '>'
WHEN 'NE' THEN '<>'
WHEN 'EQ' THEN '=' END
+@Verdi+ CASE @Tilstand WHEN 'OG' THEN 'AND'
WHEN 'ELLER' THEN 'OR' END
select @result
很难看出你想用这个字符串做什么。所有变量都被认为是正确声明的,不是吗?是的,它们被正确声明了你的意思是
1@ypercube:我的意思当然是和!是的,我担心的是这一条款缺乏空间和支离破碎的性质。除非我们看到如何使用@Result
,否则我们无法真正判断问题将是什么。动态SQL有时可能是有保证的,但在这些条件字符串连接中很容易丢失。@谢谢,查询中缺少End。
declare @result nvarchar(256)
declare @KriteriumTekst nvarchar(256)
declare @Operator nvarchar(256)
declare @Verdi nvarchar(256)
declare @Tilstand nvarchar(256)
set @KriteriumTekst = 'Tekst '
set @Operator = 'LT'
set @Verdi = 'Verdi '
set @Tilstand = 'OG'
SET @Result= @KriteriumTekst+CASE @Operator WHEN 'LT' THEN '<'
WHEN 'GT' THEN '>'
WHEN 'NE' THEN '<>'
WHEN 'EQ' THEN '=' END
+@Verdi+ CASE @Tilstand WHEN 'OG' THEN 'AND'
WHEN 'ELLER' THEN 'OR' END
select @result
@KriteriumTekst + '<' + @Verdi + 'OG'
@Result = '1<5OG'