检查约束以确保字符列中的值都是数字

时间:2009-07-31 11:39:13

标签: sql sybase

这与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]'

1 个答案:

答案 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]%'

双重否定并处理任何长度