2015-12-15 20 views
0

這裏我試圖檢查數據列Data_export是否爲空;如果是這樣,那麼我的查詢應該跳過(data + @Data_separate)部分,否則它必須包括在內。在存儲過程中,如果在表列中找到空值,它應該跳過

我搜索了很多,但該代碼不起作用。

這裏是我的原代碼...

WITH a AS 
(
    SELECT 
     data + @Data_Separate AS data, 
     srno 
    FROM 
     Data_export WITH(nolock) 
    WHERE 
     srno > @FetchSrNo 
     AND srno <= @srno 
     AND segment_indicator = 1 
     AND Mem_code = @MemberCode      
) 
SELECT 
    -- stuff(      
    (SELECT a.data 
    FROM a 
    ORDER BY srno 
    FOR xml path(''), type).value('.', 'varchar(max)') 
    --,1,0,'') 
    AS data 
+0

如何使用'COALESCE(expression [,... n])'? – Japongskie

+0

你能否詳細說明這個聲明* isnull函數在這裏不工作,因爲我正在接受srno大於fetchsrno且小於srno的數據。* –

+0

@ VR46:請忽略我的那句話。我想要的是如果數據列在null然後我不想選擇Data_Separate,否則我會採取數據以及Data_Separate。在這裏我不知道如何檢查選擇語句中的條件。請幫忙 –

回答

0

Anything + NULL = NULL。所以

WITH a AS 
(
    SELECT 
     coalesce(data,'') + coalesce(@Data_Separate,'') AS data, --or Isnull(@Data_Separate,'') 
     srno 
    FROM 
     Data_export WITH(nolock) 
    WHERE 
     srno > @FetchSrNo 
     AND srno <= @srno 
     AND segment_indicator = 1 
     AND Mem_code = @MemberCode      
) 
SELECT 
    -- stuff(      
    (SELECT a.data 
    FROM a 
    ORDER BY srno 
    FOR xml path(''), type).value('.', 'varchar(max)') 
    --,1,0,'') 
    AS data 
相關問題