2015-10-31 54 views
0

我的存儲過程在SQL Server上的工作導出到文件中.csv格式,其中有如下的條件語句:SQL Server存儲過程中的字符串值?

xp_cmdshell ' bcp 
"Select ''Status'' union all Select (CASE WHEN (foo.new_value != '') THEN ''Start'' ELSE ''Stop'' END) 
from table_name as foo" 
queryout c:/test.csv -T -c -t' 

當我運行它不是在執行過程出口任何文件上面查詢。我認爲問題發生是由於字符串StartStop值,因爲當我執行下面提到的查詢時,它執行得非常好,併成功導出名爲test.csv的文件。

xp_cmdshell ' bcp 
"Select ''Status'' union all Select foo.new_value from table_name as foo" 
queryout c:/test.csv -T -c -t' 

因此,這裏是我的問題,我怎麼可以將字符串值與"Start""Stop"值替換new_value列值。

感謝任何幫助。

回答

1

是沒有問題的只是case語句,你也沒能逃脫'正確的,因爲你的字符串的結果是:

... CASE WHEN (foo.new_value != ') THEN 

所以,你應該增加2個' S:

... CASE WHEN (foo.new_value != '''') THEN