我很少有这样的电话号码:
Tele
-----
251510X25
364680X5
12345,X34
12345X
x57823889
1234567X12/7
1234567X,12/7
我想让电话只在 X 之前和之后有数字我的输出应该是:
Tele
-----
251510X25
364680X5
1234567X12/7
我写了一个这样的查询:
SELECT ID,TELP,
CASE
WHEN PATINDEX('%[0-9]%', TELP) >0 THEN
RTRIM(LEFT(TELP, PATINDEX('%[0-9]%', TELP)-1))
ELSE TELP
END as TELP1
FROM [teble1] where len(TELP) <=10 and PATINDEX('%[0-9]%', TELP) >0
and (TELP like '%x%' or TELP like '%/%')
我无法获得所需的输出。我有大约 10 万条这样的记录。
该LIKE
运营商可以在这里工作:
SELECT *
FROM [teble1]
WHERE
TELP LIKE '%[0-9][0-9][0-9][0-9][0-9][0-9][0-9]X[0-9]%';
上面的类似模式表示捕获任何具有七位数字的数字,后跟一个X
,然后是至少一位数字。
SQL Server 没有非常强大的正则表达式支持,但为了弥补这一点,它们增强LIKE
了支持一些基本的正则表达式模式匹配,例如[0-9]
表示任何数字。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句