Извлечь адрес подстроки SQL - PullRequest
       14

Извлечь адрес подстроки SQL

0 голосов
/ 28 октября 2019

У меня есть таблица со столбцом Address, которая похожа на city. City_Name, citysector. CitySector, Street. Street_Name, StreetNumber. Street_Number

EXAMPLE
Address
c. Paris, s. ParisDowntown, str. Rue Étienne Marcel, nr. 50

Как вычесть 4 различных столбца, таких как город, сектор, улица, улицаNumber из столбца Address? Заранее спасибо!

1 Ответ

3 голосов
/ 28 октября 2019

С помощью пары замен вы можете изменить формат строки на json, а затем использовать openjson для извлечения значений.

Сначала создайте и заполните таблицу-образец ( Пожалуйста сохранитенам этот шаг в ваших будущих вопросах):

DECLARE @T AS TABLE
(
    [Address] nvarchar(200)
);

INSERT INTO @T ([Address]) VALUES 
('c. Paris, s. ParisDowntown, str. Rue Étienne Marcel, nr. 50');

Запрос:

SELECT City, CitySector, Street, Number
FROM @T
CROSS APPLY OPENJSON('{"' + REPLACE(REPLACE([Address], ', ', '", "'), '. ', '":"') + '"}') 
WITH (
    City nvarchar(100) '$.c',
    CitySector nvarchar(100) '$.s',
    Street nvarchar(100) '$.str',
    Number int '$.nr'
) As vals

Результаты:

City    CitySector      Street              Number
Paris   ParisDowntown   Rue Étienne Marcel  50
...