Мне нужно преобразовать значения в Varchar. У меня этот код:Ошибка синтаксиса при использовании Преобразование внутри PIVOT
SELECT Value AS FieldName, [42] AS [KeyID_42],[600] AS [KeyID_600]
FROM
(
SELECT TransID, Value, FieldName
FROM
(
SELECT TransID, [ErisaPlanEndsMM], [ErisaPlanEndsDD],
[MLRAvgLivesNumber], [MLRAvgLivesRptYear]
FROM tblSQLAdminInventory
) p
UNPIVOT
(FieldName FOR Value IN
(Convert(VarChar(250), [ErisaPlanEndsMM]) AS [ErisaPlanEndsMM],
Convert(VarChar(250), [ErisaPlanEndsDD]) AS [ErisaPlanEndsDD],
Convert(VarChar(250), [MLRAvgLivesNumber]) AS [MLRAvgLivesNumber],
Convert(VarChar(250), [MLRAvgLivesRptYear]) AS [MLRAvgLivesRptYear])
)AS unpvt
) AS SourceTable
PIVOT
(
MAX(FieldName)
FOR TransID IN ([42],[600])
) AS PivotTable
Я получаю ошибку:
Msg 156, Level 15, State 1, Line 9
Incorrect syntax near the keyword 'Convert'.
Все, что я нашел в Интернете это случаи, когда CAST
был использован, потому что пользователь должен был преобразовать Int. В моем случае я хочу все, что угодно. Может ли кто-нибудь сказать мне, как это сделать?
Я должен добавить, что это динамический запрос и может содержать несколько десятков полей, в зависимости от таблицы. Мой код выше - это SQL, сгенерированный при работе с одной конкретной таблицей.
Просто мысли, попробуйте использовать тип без размера, как 'Convert (VARCHAR, yourField)' –
Кроме того, что ваш SQL -Верверная версия? –