db2 如何在SQL中检查字符串是否只包含小写字符和数字

qxsslcnc  于 2022-11-07  发布在  DB2
关注(0)|答案(2)|浏览(612)

如何在SQL中检查字符串是否只包含小写字符、数字和符号“@”
我尝试这样的东西:

ALTER TABLE TABLE1
    ADD CONSTRAINT c1
        CHECK (
            (R1 like '%[abcdefghijklmnobqrstuvwxyz@1234567890]%')
            );
nzk0hqpo

nzk0hqpo1#

您应该将检查条件约束表述为数据行 not 含有任何 * 不是 * 小写、数字或@符号的字符:

ALTER TABLE TABLE1
ADD CONSTRAINT c1
    CHECK (NOT REGEXP_LIKE(R1, '[^abcdefghijklmnobqrstuvwxyz@1234567890]'));
3pmvbmvn

3pmvbmvn2#

试试看:

SELECT 
  S
, '>' || TRANSLATE (S, '*', ' abcdefghijklmnobqrstuvwxyz@1234567890') || '<' AS TRANSLATED
, CASE TRANSLATE (S, '*', ' abcdefghijklmnobqrstuvwxyz@1234567890') 
    WHEN '' THEN 'YES'
    ELSE 'NO'
  END AS RES
FROM (VALUES ' abc', 'abc@123', 'Abc') T (S)

| 标准|已翻译|保留|
| - -|- -|- -|
| abc公司|〉*〈|否|
| abc@123|〉〈|是的|
| ABC公司|〉A〈|否|

相关问题