【问题标题】:Check if data has a comma, if so display error检查数据是否有逗号,如果有则显示错误
【发布时间】:2017-12-30 20:56:48
【问题描述】:

我需要能够通过说来过滤我的数据集: 如果承诺字段有逗号,则在结果字段中显示该行的错误。

当前代码:

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

这本质上只是通过带有数值的数据。一些数据有逗号。对于那些有逗号的字段,我希望能够让它显示错误。我正在考虑在可能的 SQL 级别中使用此过滤器。

右边的例子。如您所见,在过滤时,如果都是数字,我希望它按原样显示。但是,如果它包含任何逗号,我希望它显示并显示错误。

【问题讨论】:

  • 你想要的输出是什么?输出一个状态栏会令人满意吗?
  • 我已经用一张图片更新了我的帖子。我希望它显示在初始列中。因此,让它在初始列中显示数字数据,或者如果它由任何逗号组成,则让它显示错误。希望这能回答你的问题
  • @youngj 您必须澄清您的问题并添加一些数据示例和一些代码。那么可以很容易地帮助你

标签: sql sql-server tsql reporting-services ssrs-2012


【解决方案1】:

以下答案假定如果您在承诺列中看到一个或多个逗号,则您希望打印一个错误。如果那里可以出现逗号,则表示列类型必须是文本。我们可以尝试使用以下CASE 表达式:

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

再次假设Commitments 是文本。如果它已经是数字,那么其中不能有任何逗号开头。

【讨论】:

  • 这条评论是什么意思?
  • @TimBiegeleisen 说您可以将他的 CASE 语句添加到 SQL 的末尾以获得所需的结果
  • @YoungJ 只需将我的CASE 表达式添加到您的选择列表中。
猜你喜欢
  • 1970-01-01
  • 2010-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-05
  • 2021-10-26
  • 1970-01-01
  • 2019-12-15
相关资源
最近更新 更多