Из стороннего приложения я получаю данные для импорта в tsql.В нашей таблице базы данных есть четыре поля, соответствующие нашим полям.Но логика другая.3-стороннее приложение не имеет «заполняющей структуры».Но нам нужно заполнить поля справа налево без пробелов.
DECLARE @input TABLE ( field1 VARCHAR(60)
, field2 VARCHAR(60)
, field3 VARCHAR(60)
, field4 VARCHAR(60) )
/*Input Data from 3rd-party app*/
INSERT @input
VALUES ( 'row1field1', NULL, NULL, NULL )
, ( 'row2field1', 'row2field2', NULL, NULL )
, ( 'row3field1', 'row3field2', 'row3field3', NULL )
, ( 'row4field1', 'row4field2', NULL, 'row4field4' )
Ожидаемый результат должен быть:
|NULL|NULL |NULL |row1field1|
|NULL|NULL |row2field1|row2field2|
|NULL|row3field1|row3field2|row3field3|
|NULL|row4field1|row4field2|row4field4|
Я пытался CASE, чтобы решить эту проблему, но, конечно, естько многим комбинациям.Или, может быть, использовать STRING_AGG, а затем разделить его снова, но швы немного странные.