2017-07-25 55 views
0

我需要能夠通過以下方式過濾我的數據集: 如果承諾字段具有逗號,然後在結果字段中顯示該行的錯誤。檢查數據是否有逗號,如果有則顯示錯誤

當前代碼:

WHERE [Commitments] NOT LIKE '%[^0-9]%' 

其基本上只是路過與數值數據。一些數據有逗號。對於那些有逗號的字段,我希望能夠顯示錯誤。我正在考慮在可能的SQL級別使用此過濾器。

Example

什麼是正確的一個例子。正如你所看到的,當它的過濾時,如果它是全部的數字,我希望它按原樣顯示。但是,如果它包含任何逗號,我希望它顯示併發生錯誤。

+0

你想要的輸出是什麼?輸出狀態欄是否令人滿意? –

+0

我已經用圖像更新了我的文章。我希望它顯示在最初的專欄中。因此,它在最初的列中顯示數字數據,或者如果它包含任何逗號,請讓它顯示一個錯誤。希望這回答你的問題 –

+0

@youngj你必須澄清你的問題,並添加一些數據的例子和一些代碼。那麼可以很容易地幫到你 – Fmanin

回答

3

以下答案假設如果您在承諾列中看到一個或多個逗號,您希望打印一個錯誤。如果逗號可以在那裏出現,則表示列類型必須是文本。我們可以嘗試使用以下CASE表達:

SELECT 
    col1, 
    -- other columns 
    CASE WHEN CHARINDEX(',', Commitments) > 0 
     THEN 'Error' 
     ELSE Commitments END AS status 
FROM yourTable 

再次,這假定Commitments是文本。如果它已經是數字,那麼在那裏就不能有任何逗號。

+0

這個評論的意思是什麼? –

+0

@TimBiegeleisen說您可以將他的CASE語句添加到您的SQL的末尾以獲得您想要的結果 – tomdemaine

+0

@YoungJ只需將我的'CASE'表達式添加到您的選擇列表中即可。 –

相關問題