Как отделить строку и вставить в таблицу?

Мой вопрос в том, что у меня есть такая строка

Red,House|White,Car|Blue,Table

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

-  Col1   Col2
-  -----------
-  Red    House
-  White  Car
-  Blue   Table

Как мне это сделать?

c-sharpcorner.com/blogs/…
vadzim dvorak 22.05.2019 11:57
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
1
50
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Вы можете попробовать этот запрос.

DECLARE @str VARCHAR(500) = 'Red,House|White,Car|Blue,Table'
CREATE TABLE #Temp (tDay VARCHAR(100))
WHILE LEN(@str) > 0
BEGIN
    DECLARE @TDay VARCHAR(100)
    IF CHARINDEX('|',@str) > 0
        SET  @TDay = SUBSTRING(@str,0,CHARINDEX('|',@str))
    ELSE
        BEGIN
        SET  @TDay = @str
        SET @str = ''
        END
  INSERT INTO  #Temp VALUES (@TDay)
 SET @str = REPLACE(@str,@TDay + '|' , '')
 END

 SELECT * 
 FROM #temp

 SELECT tday,
    PARSENAME(REPLACE(tday,',','.'),2) 'Col1' ,
    PARSENAME(REPLACE(tday,',','.'),1) 'Col2'
FROM #temp

Вы можете проверить живую демонстрацию Здесь.

может быть, это то, что вы ищете.

SELECT Substring(value, 1,Charindex(',', value)-1)  as col1
,  Substring(value, Charindex(',', value)+1, LEN(value)) as  col2
FROM STRING_SPLIT('Red,House|White,Car|Blue,Table', '|')

работает с SQL Server 2016

Я использую string_split() или аналогичную функцию разделения строк, которую вы можете добавить в свою базу данных. Тем не менее, я бы сформулировал окончательную логику извлечения следующим образом:

select left(s.value, v.split - 1),
       stuff(s.value, 1, v.split, '')
from string_split('Red,House|White,Car|Blue,Table', '|') s cross apply
     (values (charindex(',', s.value))) v(split);

Другие вопросы по теме