我在 MS 2000 SQL 数据库中有一个字符串,需要使用 select 语句仅删除 SSN。我无法选择使用外部应用程序。另一个有趣的部分是 SSN 的位置并不总是相同。
[B-Day][First Name][SSN][POB]
12121970John123-45-6789Las Vages
或者
[B-Day][First Name][Last Name][SSN][POB]
12121970JohnDoe123-45-6789Las Vages
我需要 SQL 类型的正则表达式!
有什么想法吗?
最佳答案
<pre>SELECT substring(a, 1, PatIndex('%[0-9][0-9][0-9]-%', a) - 3)
+ substring(a, PatIndex('%[0-9][0-9][0-9]-%', a) + 9, 100) FROM myTable
</pre>
myTable 是表,“a”是列名。
编辑:当然,有一些关于社会安全号码格式的假设。 另外,我添加了一个任意数字 100 以将字符串选取到末尾。如果您的字符串超过此值,您可以增加它。
关于sql-server - 从 SQL 中的字符串中删除 SSN(社会安全号码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/623154/