确认电话号码数据格式正确

问题描述 投票:0回答:1

我需要检查电话号码列中的数据,以确保其格式为:

(XXX)XXX-XXXX

我已经知道有些行的条目格式不正确,例如: (123)456-7890 1234567890; 5678901223

我尝试了很多查询,但这感觉最接近,但仍然没有返回任何值:

SELECT * FROM table_name
WHERE telephone_number like '([000-9]) ([000-999])-([0000-9999])';

预先感谢您的帮助, 克里斯蒂

sqlite
1个回答
0
投票

由于我们没有正则表达式,我可以提出一个丑陋的解决方案,直到有人有更好的想法吗?

SELECT * FROM table_name
WHERE REPLACE(
        REPLACE(
          REPLACE(
            REPLACE(
              REPLACE(
                REPLACE(
                  REPLACE(
                    REPLACE(
                      REPLACE(
                        REPLACE(
                          telephone_number, '0', 'X'
                        ), '1', 'X'
                      ), '2', 'X'
                    ), '3', 'X'
                  ), '4', 'X'
                ), '5', 'X'
              ), '6', 'X'
            ), '7', 'X'
          ), '8', 'X'
        ), '9', 'X'
      ) = '(XXX) XXX-XXXX';
© www.soinside.com 2019 - 2024. All rights reserved.