SQL嵌套情况使用数字检查时

时间:2015-06-18 12:07:46

标签: sql sql-server case numeric

我正在尝试用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,但这对我来说有点棘手。

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

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

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