Разбор столбца, содержащего целые числа - PullRequest
0 голосов
/ 25 апреля 2018

Я пишу запрос, который извлекает 50 полей из 12 подзапросов в операторе FROM.Каждый подзапрос объединяется в два поля: артикул товара и идентификатор бренда.Однако есть одна таблица, в которой идентификатор бренда объединяется в столбце с разделителями-запятыми.

Моя проблема в том, что у меня проблемы с анализом этого столбца, поэтому я могу использовать его в качестве внешнего ключа для присоединения к другим подзапросам.Я попытался задать для столбца переменную =, а затем с помощью функции String_Split, но в запросе получалось сообщение об ошибке «Столбец не выбран для столбца 1».Если у кого-то есть предложения о том, как преобразовать эти данные в НОВУЮ строку, чтобы у каждого SKU, с которым связано несколько брендов, была строка, показывающая этот SKU и бренд.Я добавил снимок экрана с данными, которые нужно проанализировать.Спасибо!

enter image description here

1 Ответ

0 голосов
/ 26 апреля 2018

Не является ли этот пример в документах MSSQL именно тем, что вы пытаетесь сделать?

+-----------+--------------------+----------------------------+
| ProductId |        Name        |            Tags            |
+-----------+--------------------+----------------------------+
|         1 | Full-Finger Gloves | clothing,road,touring,bike |
|         2 | LL Headset         | bike                       |
|         3 | HL Mountain Frame  | bike,mountain              |
+-----------+--------------------+----------------------------+

преобразуется в (обратите внимание на изменение имени столбца!)

+-----------+--------------------+----------+
| ProductId |        Name        |  value   |
+-----------+--------------------+----------+
|         1 | Full-Finger Gloves | clothing |
|         1 | Full-Finger Gloves | road     |
|         1 | Full-Finger Gloves | touring  |
|         1 | Full-Finger Gloves | bike     |
|         2 | LL Headset         | bike     |
|         3 | HL Mountain Frame  | bike     |
|         3 | HL Mountain Frame  | mountain |
+-----------+--------------------+----------+

используя

SELECT ProductId, Name, value  
FROM Product  
    CROSS APPLY STRING_SPLIT(Tags, ',');

Поскольку вы не поделились каким-либо кодом, я не могу быть более конкретным ... но этот пример, как мне кажется, действительно должен быть частью васпропали без вести.

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