0

这类似于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]'
4

1 回答 1

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

双负并处理任何长度

于 2009-07-31T11:55:56.433 回答