1
У меня есть таблица ниже:фильтр конкретное слово в SQL Server по номеру строки
| Row | RecordLocator | Comment
|-----|---------------|------------------------------------------------------------------
| 1 | AAA111 | SearchCrt:ONEWAY - EMAIL:0:[email protected] - EMAIL:1:[email protected] - PassangerContact: xxxyy - Promo:0257 - ......
| 2 | AAA111 | SearchCrt:ONEWAY - EMAIL:0:[email protected] - EMAIL:1:[email protected] - PassangerContact: xxxyy - Promo:0257 - ......
| 1 | BBB111 | PassangerContact: jrte - PersonID:12 - EMAIL:0:[email protected] - BagTag: 12315 - .......
| 1 | CCC111 | Promo:5474 - EMAIL:0:[email protected] - BagTag: 12315 - EMAIL:1:[email protected] - EMAIL:2:[email protected] - .......
| 2 | CCC111 | Promo:5474 - EMAIL:0:[email protected] - BagTag: 12315 - EMAIL:1:[email protected] - EMAIL:2:[email protected] - .......
| 3 | CCC111 | Promo:5474 - EMAIL:0:[email protected] - BagTag: 12315 - EMAIL:1:[email protected] - EMAIL:2:[email protected] - .......
| 1 | DDD111 | Promo:89474 - BagTag: 147515 - dds2121sdsd1a2 - 221221gdfgf - .......
И мне нужен результат ниже:
| Row | RecordLocator | E-mail
|-----|---------------|------------------------------------------------------------------
| 1 | AAA111 | [email protected]
| 2 | AAA111 | [email protected]
| 1 | BBB111 | [email protected]
| 1 | CCC111 | [email protected]
| 2 | CCC111 | [email protected]
| 3 | CCC111 | [email protected]
| 1 | DDD111 | not found
EMAIL:0:
необходимо добавить line 1
, EMAIL:1:
необходимо добавить line 2
.... Но только по электронной почте. Если не найдено по электронной почте, отправьте сообщение not found
.
Я попытался ниже запрос:
SELECT DISTINCT
tmpRow.Row
, tmpRow.RecordLocator
, isNull(searchEmail.Email, 'not found')
FROM #TmpRow tmpRow
CROSS APPLY
(
SELECT SUBSTRING (tmpRow2.Comment , (CHARINDEX('EMAIL:'+ (tmpRow2.Row - 1) +':', tmpRow2.Comment)) , 20) AS Email
FROM #TmpRow tmpRow2
WHERE tmpRow.Row = tmpRow2.Row
AND tmpRow.RecordLocator = tmpRow2.RecordLocator
)searchEmail
Но нет успеха, мне нужно остановить в -
полукокса и CHARINDEX
не работает тоже.
Я использую SQL Server 2008.
Это лучше :) – jpw
Независимо от того, было бы лучше, если бы ОР мог нормализовать свои данные. –
Отлично! Спасибо! –