Проверьте ограничение, чтобы убедиться, что все значения в символьном столбце являются цифрами. - PullRequest
0 голосов
/ 31 июля 2009

Это похоже на 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]'

1 Ответ

2 голосов
/ 31 июля 2009

Мозг болит, не работает НЕ как (не диапазон)

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

Двойной минус и сделки любой длины

...