1
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

メッセージ156、レベル15、状態1、プロシージャSP_CheckDB、行31キーワード「SET」の近くの構文が正しくありません。メッセージ156、レベル15、状態1、プロシージャSP_CheckDB、行36キーワード「ELSE」の近くの構文が正しくありません

この声明を手伝ってください

ありがとう

4

3 に答える 3

4

これを使って

Declare @str VARCHAR(MAX)

SET @str = '<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>' 


SELECT (CASE
        WHEN(percentage >= @Start AND percentage < @End)                        
        THEN @str
        ELSE 'NULL' END) as Variance  
FROM TestTbl

また

DECLARE @body VARCHAR(MAX) = 'NULL'

    IF(percentage >= @Start AND percentage < @End) THEN
    BEGIN
        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>' 
    END

    SELECT Variance = @body
于 2012-09-21T12:23:40.887 に答える
1

条件付き割り当てが必要な場合は、次のようにする必要があります。

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

ただし、同じステートメント内から割り当て+選択することはできないことに注意してください。

于 2012-09-21T12:13:45.900 に答える
1
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
于 2012-09-21T12:17:48.363 に答える