@ 字符前字符串的通配符
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.
我会用正则表达式解决它,但具体答案取决于您的数据库供应商和可用语法。
-
SELECT * FROM table WHERE email ~ '^0+@'
-
SELECT * FROM table WHERE email REGEXP '^0+@'
同义词是 email RLIKE '^0+@'
和 REGEXP_LIKE(email, '^0+@')
。
-
SELECT * FROM table WHERE REGEXP_LIKE(email, '^0+@')
我将如何使用通配符来过滤掉以下任何排列。 “@”字符前可以有任意数量的零。 例子
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.
我会用正则表达式解决它,但具体答案取决于您的数据库供应商和可用语法。
-
SELECT * FROM table WHERE email ~ '^0+@'
-
SELECT * FROM table WHERE email REGEXP '^0+@'
同义词是
email RLIKE '^0+@'
和REGEXP_LIKE(email, '^0+@')
。 -
SELECT * FROM table WHERE REGEXP_LIKE(email, '^0+@')