2017-07-25 56 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'表达式添加到您的选择列表中即可。 –

相关问题