【问题标题】:SQL Nested Case When with numeric check带有数字检查的 SQL 嵌套案例
【发布时间】:2015-06-18 12:07:46
【问题描述】:

我正在尝试使用 SQL 创建一个“过滤器”。

我有一个这样的名为 ARTICLE 的表:

    CODE           |  NAME           |  QUANTITY    |
    _______________|_________________|_______________   
    0020717270084  |  MANGO FRUIT 1L |      3       |
    0884394000774  |  ALOE VERA 50CL |      4       |
    16             |  CHEWING GUM    |      10      |
    IGLOO          |  IGLOO ICE      |      5       |

我想在 CODE 上进行 SELECT 验证。 如果 CODE 是一个数字并且长度为 8 位或 10 位或 13 位,我显示 CODE ELSE 我必须在 CODE 之前显示*(简单连接)。

我可以做 CASE WHEN,但这对我来说有点棘手。

感谢您的帮助。

【问题讨论】:

  • 请用您正在使用的数据库标记您的问题。

标签: sql sql-server case numeric


【解决方案1】:

您可以使用case 语句来执行此操作。数据库以不同的方式进行检查。下面是使用 SQL Server 的一种方法:

select (case when len(code) in (8, 10, 13) and code not like '%[^0-9]%'
             then code
             else '*' + code
        end)

【讨论】:

  • 我已经尝试过not like 一个,但它不起作用,顺便说一句,您的选择完美!非常感谢
猜你喜欢
  • 2014-08-13
  • 2015-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多