Sql Case语句集参数 选择(大小写) 何时(百分比>=@开始和百分比>@结束) 然后 SET@body='Report 无日期滞后差异' 设置@body=@body+@xml+'' 否则“NULL”结束)作为方差 来自TestTbl

Sql Case语句集参数 选择(大小写) 何时(百分比>=@开始和百分比>@结束) 然后 SET@body='Report 无日期滞后差异' 设置@body=@body+@xml+'' 否则“NULL”结束)作为方差 来自TestTbl,sql,sql-server,sql-server-2005,Sql,Sql Server,Sql Server 2005,Msg 156,15级,状态1,程序SP_CheckDB,第31行 关键字“SET”附近的语法不正确。 Msg 156,15级,状态1,程序SP_CheckDB,第36行 关键字“ELSE”附近的语法不正确 请帮忙做这个陈述 谢谢如果您只需要条件分配,那么您需要这样做: SELECT (CASE WHEN(percentage >= @Start AND percentage < @End) THEN

Msg 156,15级,状态1,程序SP_CheckDB,第31行 关键字“SET”附近的语法不正确。 Msg 156,15级,状态1,程序SP_CheckDB,第36行 关键字“ELSE”附近的语法不正确

请帮忙做这个陈述


谢谢

如果您只需要条件分配,那么您需要这样做:

SELECT (CASE
        WHEN(percentage >= @Start AND percentage < @End)                        
        THEN 
            SET @body ='<html><body><H3>Report</H3>
                        <table border = 1> 
                        <tr>
                        <th>No </th> <th> date </th> <th> lag </th> <th> Variance </th></tr>'    
            SET @body = @body + @xml +'</table></body></html>' 
        ELSE 'NULL' END) as Variance  
    FROM TestTbl
选择TOP 1@body=(大小写)
何时(百分比>=@开始和百分比>@结束)
然后
"报告"
无日期滞后差异'
+@xml+“”
否则为“空”
(完)
来自TestTbl

尽管请注意,不能在同一语句中赋值+选择。

如果只需要条件赋值,则需要这样做:

SELECT (CASE
        WHEN(percentage >= @Start AND percentage < @End)                        
        THEN 
            SET @body ='<html><body><H3>Report</H3>
                        <table border = 1> 
                        <tr>
                        <th>No </th> <th> date </th> <th> lag </th> <th> Variance </th></tr>'    
            SET @body = @body + @xml +'</table></body></html>' 
        ELSE 'NULL' END) as Variance  
    FROM TestTbl
SELECT TOP 1 @body = (CASE
        WHEN(percentage >= @Start AND percentage < @End)                        
        THEN 
             '<html><body><H3>Report</H3>
                        <table border = 1> 
                        <tr>
                        <th>No </th> <th> date </th> <th> lag </th> <th> Variance </th></tr>'    
            + @xml +'</table></body></html>' 
        ELSE 'NULL' 
        END)
 FROM TestTbl
选择TOP 1@body=(大小写)
何时(百分比>=@开始和百分比>@结束)
然后
"报告"
无日期滞后差异'
+@xml+“”
否则为“空”
(完)
来自TestTbl
尽管请注意,您不能在同一语句中分配+选择。

Select@body=(在(百分比>=@Start和百分比<@End)时的大小写)
SELECT TOP 1 @body = (CASE
        WHEN(percentage >= @Start AND percentage < @End)                        
        THEN 
             '<html><body><H3>Report</H3>
                        <table border = 1> 
                        <tr>
                        <th>No </th> <th> date </th> <th> lag </th> <th> Variance </th></tr>'    
            + @xml +'</table></body></html>' 
        ELSE 'NULL' 
        END)
 FROM TestTbl
然后报告 无日期延迟差异'+@xml+'') 否则“NULL”结束)作为方差 来自TestTbl
选择@body=(当(百分比>=@开始和百分比<@结束时的情况)
然后报告
无日期延迟差异'+@xml+'')
否则“NULL”结束)作为方差
来自TestTbl
使用此

SELECT @body=(CASE WHEN(percentage >= @Start AND percentage < @End)                        
        THEN ('<html><body><H3>Report</H3>
                        <table border = 1> 
                        <tr>
                        <th>No </th> <th> date </th> <th> lag </th> <th> Variance </th></tr>'+@xml +'</table></body></html>')
        ELSE 'NULL' END) as Variance  
    FROM TestTbl
Declare@str VARCHAR(最大值)
SET@str='报告
没有日期
滞后方差
“++@xml+”
选择(案例)
何时(百分比>=@开始和百分比>@结束)
然后@str
否则“NULL”结束)作为方差
来自TestTbl

声明@body VARCHAR(MAX)='NULL'
如果(百分比>=@开始和百分比<@结束),则
开始
SET@body='Report
没有日期
滞后方差
'    
设置@body=@body+@xml+''
结束
选择Variance=@body
使用此

SELECT @body=(CASE WHEN(percentage >= @Start AND percentage < @End)                        
        THEN ('<html><body><H3>Report</H3>
                        <table border = 1> 
                        <tr>
                        <th>No </th> <th> date </th> <th> lag </th> <th> Variance </th></tr>'+@xml +'</table></body></html>')
        ELSE 'NULL' END) as Variance  
    FROM TestTbl
Declare@str VARCHAR(最大值)
SET@str='报告
没有日期
滞后方差
“++@xml+”
选择(案例)
何时(百分比>=@开始和百分比>@结束)
然后@str
否则“NULL”结束)作为方差
来自TestTbl

声明@body VARCHAR(MAX)='NULL'
如果(百分比>=@开始和百分比<@结束),则
开始
SET@body='Report
没有日期
滞后方差
'    
设置@body=@body+@xml+''
结束
选择Variance=@body
CASE
是一个表达式-它生成一个值。它不是一个控制流语句。
CASE
是一个表达式-它生成一个值。它不是一个控制流语句。