【发布时间】:2018-02-05 15:36:47
【问题描述】:
我在电话栏中很少有这样的垃圾值:
tel
-----
ID# 12
ID23
45(ID)
MYID
YOUR ID
我希望结果应该是这样的。
tel
-----
ID# 12
ID23
45(ID)
我写了一个这样的查询:
PATINDEX('%[^a-zA-Z0-9]%',TEL) = 0
但是,我没有得到例外结果。任何人都可以提供线索吗?谢谢。
【问题讨论】:
-
你想要的结果背后的逻辑是什么?您只想返回包含数字的结果?
-
是的,我想要 (ID# 12 ID23 45(ID))。那只是数字和字母。
-
如果您正在寻找垃圾值,为什么没有返回 MYID 和 YOUR ID?这些似乎不太可能是电话号码的有效值。
-
请注意,任何只想知道某些内容是否与模式匹配的查询都可以使用
LIKE,而不是将PATINDEX的结果与 0 进行比较。仅当您需要PATINDEX第一场比赛的位置。我提到这一点是因为您的问题和几个答案都以不添加任何内容的方式使用它。
标签: sql-server sql-server-2016