获取仅包含字母和数字的值

时间:2018-02-05 15:36:47

标签: sql-server sql-server-2016

我在电话栏中的垃圾值很少,如下所示:

   tel
  -----
  ID# 12
  ID23
  45(ID)
  MYID
  YOUR ID

我希望结果应该是这样的。

   tel
  -----
  ID# 12
  ID23
  45(ID)

我写了这样一个查询:

   PATINDEX('%[^a-zA-Z0-9]%',TEL) = 0

但是,我没有得到例外结果。任何人都有线索吗?感谢。

2 个答案:

答案 0 :(得分:1)

请尝试此解决方案---

QList<QPointer<QObject> > eventFilters;

<强>解

a->removeEventFilter(b)

<强>输出

CREATE TABLE testtel
(
    tel VARCHAR(100)
)
GO

INSERT INTO testtel VALUES
('ID# 12'),
('ID23'),
('45(ID)'),
('MYID'),
('YOUR ID')
GO

答案 1 :(得分:0)

如果您想获得包含至少一个字母和至少一个数字的所有值,您只需检查两者,每个都在其自己的patindex中:

SELECT tel
FROM TableName
WHERE PATINDEX('%[a-zA-Z]%',tel) > 0 
AND PATINDEX('%[0-9]%',tel) > 0

<强>更新
正如Jeroen Mostert在评论中写道的那样,Like应该做同样的事情,只有更好:

SELECT tel
FROM TableName
WHERE tel LIKE '%[a-zA-Z]%'
AND tel LIKE '%[0-9]%'