Я пытаюсь повернуть таблицу, переданную как UDT. Столбец 1 будет иметь повторяющиеся значения, а столбец 2 будет иметь разные значения (пример ниже). Я надеюсь, что имя столбца будет установлено в качестве номера телефона и двух значений в столбце номера телефона.
DECLARE @query AS NVARCHAR(MAX) = '';
--Temp Table to act as UDT for ease of testing
DECLARE @udt TABLE (DatabaseFieldName nvarchar(50), Value nvarchar(50))
INSERT INTO @udt VALUES('PhoneNumber','01234567890')
INSERT INTO @udt VALUES('PhoneNumber','09876543210')
--Preview of table before Pivot
select * from @udt
CREATE TABLE #temp
(
DatabaseFieldName nvarchar(50),
Value nvarchar(50)
)
INSERT INTO #temp
SELECT DatabaseFieldName, Value
FROM @udt
SELECT @cols = @cols + QUOTENAME(DatabaseFieldName) + ',' FROM (select distinct DatabaseFieldName from #temp) as temp
SELECT @cols = substring(@cols, 0, len(@cols)) -- Trims ',' at the end
SET @query =
'
SELECT * FROM
(
SELECT DatabaseFieldName, Value
FROM #temp
) AS SRC
PIVOT
(
MIN(Value) for DatabaseFieldName in (' + @cols + ')
) AS PivotTable';
execute(@query)
DROP TABLE #temp
Пример текущих и желаемых результатов
Data as it comes in:
DatabaseFieldName | Value
--------------------------------
PhoneNumber | 01234567890
PhoneNumber | 09876543210
Outcome I am hoping to get:
PhoneNumber
------------
01234567890
09876543210
What I am currently getting:
PhoneNumber
------------
01234567890
В настоящий момент второе число игнорируется из-за использования в операторе выбора словаекты, однако выдается ошибка, еслиотличное не используется.