@ 字符前字符串的通配符

Wildcard for string before @ character

我将如何使用通配符来过滤掉以下任何排列。 “@”字符前可以有任意数量的零。 例子

   0@test.com
   000000@test.com
   00000000000@test.com

基本上,我希望通配任何在 @ 字符前只有零的电子邮件地址。

如有任何帮助,我们将不胜感激 谢谢!

斯米迪

T-SQL:

要删除@

之前所有只有零的值
SELECT 
    * 
FROM (SELECT  '000@test.com' AS[values]  ) [table]
WHERE
    LEN(REPLACE((LEFT([values],CHARINDEX('@',[Values])-1)),'0',''))  <> 0

-- LEFT & CHARINDEX : 得到@
的结果 LEFT -- LEN & REPLACE : 在所有 0 被替换为 '' 之后,任何仅包含零的电子邮件将导致 len = 0.

我会用正则表达式解决它,但具体答案取决于您的数据库供应商和可用语法。

  • PostgreSQL:

    SELECT * FROM table WHERE email ~ '^0+@'
    
  • MySQL:

    SELECT * FROM table WHERE email REGEXP '^0+@'
    

    同义词是 email RLIKE '^0+@'REGEXP_LIKE(email, '^0+@')

  • Oracle:

    SELECT * FROM table WHERE REGEXP_LIKE(email, '^0+@')