Удалить SSN (номер социального страхования) из строки в SQL - PullRequest
2 голосов
/ 08 марта 2009

У меня есть строка в MS 2000 SQL db, и мне нужно удалить только SSN с помощью select satement. У меня нет возможности использовать внешнее приложение. Другая забавная часть заключается в том, что расположение SSN не всегда одинаково.

[B-Day][First Name][SSN][POB]
12121970John123-45-6789Las Vages  

Или

[B-Day][First Name][Last Name][SSN][POB]
12121970JohnDoe123-45-6789Las Vages

Мне нужен RegEx сорта SQL!

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 08 марта 2009

</p> <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> <p>

myTable - таблица, «a» - имя столбца.

РЕДАКТИРОВАТЬ: Конечно, есть некоторые предположения относительно формата номера социального страхования. Кроме того, я добавил произвольное число 100, чтобы выбрать строку до конца. Вы можете увеличить его, если ваша строка больше.

2 голосов
/ 08 марта 2009

Предполагая, что у вас есть доступ к самому серверу, вот статья , в которой описывается, как добавить функцию Regex с использованием VBScript в MSSQL 2000. Оттуда регулярное выражение для сопоставления с SSN довольно просто ([0-9]{3}-[0-9]{2}-[0-9]{4}). Возможно, вам придется расширить функцию, представленную в статье, для поддержки замены, а также сопоставления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...