пытаясь сгладить строки в столбцы
У меня есть группа строк в таблице, которые имеют идентификатор. Я пытаюсь сгладить его в строках с несколькими столбцами. Я почти уверен, что сделал это с помощью cte и, возможно, раздела.
Я использовал cte 's, чтобы удалить дубликаты данных, и я подумал, что сделал что-то похожее на то, что я пытаюсь сделать здесь. Я смог придумать работоспособное решение (перечисленное ниже), но все же чувствую, что должно быть доступно более элегантное решение.
CREATE TABLE #MyTable ( RowID int , field VARCHAR(10), value VARCHAR(10))
INSERT INTO #MyTable ( RowID, field, value ) VALUES ( 1, 'first', 'neil' )
INSERT INTO #MyTable ( RowID, field, value ) VALUES ( 2, 'first', 'bob' )
INSERT INTO #MyTable ( RowID, field, value ) VALUES ( 3, 'first', 'tom' )
INSERT INTO #MyTable ( RowID, field, value ) VALUES ( 1, 'last', 'young' )
INSERT INTO #MyTable ( RowID, field, value ) VALUES ( 2, 'last', 'dylan' )
INSERT INTO #MyTable ( RowID, field, value ) VALUES ( 3, 'last', 'petty' )
SELECT * FROM #mytable
- Попытка сделать это с помощью cte / partition:
SELECT rowid,
[first] = (Select value FROM #mytable where field = 'first' and rowid = t.rowid),
[last] = (Select value FROM #mytable where field = 'last' and rowid = t.rowid)
FROM #mytable t
GROUP BY rowid