这类似于CHECK CONSTRAINT 的字符串只包含数字。(Oracle SQL)但我想为 Sybase 做这个。
我有一个字符列“colExp”(8 个字符)。我想设置一个检查约束以确保该列的值都是数字。
我怎样才能做到这一点?这会起作用,但它并不优雅
colExp LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
这类似于CHECK CONSTRAINT 的字符串只包含数字。(Oracle SQL)但我想为 Sybase 做这个。
我有一个字符列“colExp”(8 个字符)。我想设置一个检查约束以确保该列的值都是数字。
我怎样才能做到这一点?这会起作用,但它并不优雅
colExp LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
它伤害了大脑,而不是不喜欢(不是范围)的作品。
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]%'
双负并处理任何长度