这与CHECK CONSTRAINT of string to contain only digits. (Oracle SQL)类似,但我想为Sybase执行此操作。
我有一个字符列'colExp'(8个字符)。我想设置一个检查约束,以确保此列的值都是数字。
我该怎么做?这将有效,但它不优雅
colExp LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
答案 0 :(得分:2)
伤害大脑,而不是不喜欢(不是范围)。
SELECT 1 WHERE 'foo' NOT LIKE '%[^0-9]%'
SELECT 1 WHERE '123' NOT LIKE '%[^0-9]%'
SELECT 1 WHERE 'aa1' NOT LIKE '%[^0-9]%'
SELECT 1 WHERE '1bb' NOT LIKE '%[^0-9]%'
SELECT 1 WHERE NULL NOT LIKE '%[^0-9]%'
SELECT 1 WHERE ' ' NOT LIKE '%[^0-9]%'
--FAIL. Need extra check. Perhaps NULLIF
SELECT 1 WHERE '' NOT LIKE '%[^0-9]%'
双重否定并处理任何长度