SQL服务器,检查varchar是否包含全零

ADM*_*ADM 1 sql sql-server varchar

我需要编写一个函数来检查varchar变量值是否全为零.

由于变量是varchar而不是int,我有点迷失.你会怎么做?

非常感谢

Dam*_*ver 5

你可以使用双阴性LIKE测试:

@variable NOT LIKE '%[^0]%'
Run Code Online (Sandbox Code Playgroud)

其中说变量不是由一定数量的字符组成,而是一个不是 a 的字符0,后跟一些字符.唯一与该LIKE表达式不匹配的字符串是仅包含0s的字符串,因此我们使用它NOT来反转结果.

(这也接受一个空字符串 - 你是否认为一个空字符串只由0s 组成可能是一个非常有趣的讨论 - 它当然不包含任何其他字符.LEN(@Variable)如果你选择拒绝,可以使用一个简单的测试这个)