¿El servidor SQL Server permite realizar un pivote en datos de tipo cadena?
Tengo una tabla como esta:
Y quiero cambiar la estructura de la tabla a este formato:
Utilicé esta consulta:
Declare @SQL varchar(max) = Stuff((Select Distinct ',' + QuoteName([Q]) From mytable Order by 1 For XML Path('')),1,1,'')
Select @SQL = 'Select [user],' + @SQL + '
From mytable
Pivot ( sum(Answer) For [Q] in (' + @SQL + ') ) p';
Exec(@SQL);
Pero no funcionó, ya que no podemos usar la función sum para [Answer] (es un texto). ¿Cuál es tu guía para este problema?
davy.ai
Para resolver este problema, deberás convertir el campo [Answer] a un tipo de dato numérico en la declaración Pivot. Esto se puede hacer utilizando las funciones CAST o CONVERT.
Aquí tienes una consulta actualizada que debería funcionar:
En esta consulta actualizada, estamos convirtiendo el campo [Answer] a un entero utilizando la función CAST. Esto nos permitirá utilizar la función de suma en la declaración Pivot.
Ten en cuenta que si tienes algún valor no numérico en el campo [Answer], esta consulta fallará. Debes asegurarte de que todos los valores en el campo [Answer] se puedan convertir a un entero antes de utilizar esta consulta.