Разделение столбцов на несколько строк - String_Split не работает - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть следующий код:

select *
from (
    select aTable.cas_id,  aTable.udv_string
    from bTable, aTable
    where bTable.field_id = '50'
    and bTable.field_id = aTable.field_id
) infotable

Это дает следующий вывод:

cas_id    udv_string
582       2    4
615       2
276       23
453       2    4
1004      2    4

Как видите, три строки имеют несколько значений, разделенных пробелом. Я пытался использовать «split_string», но это не работает для меня. Может кто-нибудь, пожалуйста, помогите? Я также искал и пытался применить решения на ваших сайтах stackoverflow относительно этой проблемы, но безрезультатно.

Я хотел бы, чтобы результат был:

cas_id   udv_string
582      2
582      4
615      2
276      23
453      2
453      4
1004     2
1004     4

1 Ответ

0 голосов
/ 22 апреля 2020

Если вы работаете с SQL Server 16 +, вы можете использовать string_split():

select a.cas_id, aa.value as udv_string
from aTable a inner join
     bTable b
     on b.field_id = a.field_id cross apply
     string_split(a.udv_string, '  ') aa
where a.field_id = 50;

Примечание : я использовал стандартный синтаксис явного соединения вместо запятой.

Для более старой версии вы можете использовать this .

...