【问题标题】:validate a numeric column postgres验证数字列 postgres
【发布时间】:2022-11-29 12:46:44
【问题描述】:

我正在尝试使用 postgresql 验证列 其中列中的值为 (0000-ASZAS) 四个数值 - 五个字母

SELECT invoice_number,
CASE
WHEN invoice_number = '[0-9][0-9][0-9][0-9]-[A-Z][A-Z][A-Z][A-Z][A-Z]' 
THEN 'valid'
ELSE 'invalid'
END
from invoices;

也试过 LIKE 而不是 =

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    尝试 ~ 或 similar_to。见functions-matching

    WHEN invoice_number ~ '[0-9][0-9][0-9][0-9]-[A-Z][A-Z][A-Z][A-Z][A-Z]' 
    

    【讨论】:

    • ~ 给我一个错误:运算符不存在:数字 ~ 未知
    【解决方案2】:

    您可以使用 ~ POSIX 正则表达式运算符:

    SELECT invoice_number,
           CASE WHEN invoice_number ~ '^[0-9]{4}-[A-Z]{5}$' 
                THEN 'valid'
                ELSE 'invalid' END
    FROM invoices;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-09
      • 2020-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-24
      相关资源
      最近更新 更多