SQL 嵌套大小写 When with numeric check

SQL Nested Case When with numeric check

我正在尝试用 SQL 创建一个 "filter"。

我有一个 table 像这样的文章:

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

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

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

感谢您的帮助。

您可以使用 case 语句执行此操作。数据库以不同的方式进行检查。以下是使用 SQL 服务器的方法:

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