SQL 在 AAA 和 ZZZ 之间
SQL Between AAA and ZZZ
我无法获取介于 AAA 和 ZZZ 之间的代码,这是我尝试过的:
ALTER TABLE AIRPORT
ADD CONSTRAINT CORRECTCODE
CHECK (Code BETWEEN 'AAA' AND 'ZZZ' AND LENGTH(Code) = 3) ENABLE VALIDATE;
它接受我想要的值,但它也接受包含数字的值,如 AB6。我做错了什么?
您可以使用 regexp_like
。这将检查 3 个字符是否为大写。
CHECK(regexp_like(Code,'^[A-Z]{3}$'))
如果应支持大小写混合字符,请使用不区分大小写的标志 i
作为第三个参数。
CHECK(regexp_like(Code,'^[A-Z]{3}$','i'))
听起来您只是在寻找任何三个字母的大写代码。如果这是真的,那么最简单的方法就是使用正则表达式,例如;
CHECK (REGEXP_LIKE (Code, '[A-Z]{3}'))
我无法获取介于 AAA 和 ZZZ 之间的代码,这是我尝试过的:
ALTER TABLE AIRPORT
ADD CONSTRAINT CORRECTCODE
CHECK (Code BETWEEN 'AAA' AND 'ZZZ' AND LENGTH(Code) = 3) ENABLE VALIDATE;
它接受我想要的值,但它也接受包含数字的值,如 AB6。我做错了什么?
您可以使用 regexp_like
。这将检查 3 个字符是否为大写。
CHECK(regexp_like(Code,'^[A-Z]{3}$'))
如果应支持大小写混合字符,请使用不区分大小写的标志 i
作为第三个参数。
CHECK(regexp_like(Code,'^[A-Z]{3}$','i'))
听起来您只是在寻找任何三个字母的大写代码。如果这是真的,那么最简单的方法就是使用正则表达式,例如;
CHECK (REGEXP_LIKE (Code, '[A-Z]{3}'))