【问题标题】:How to invert a query with a single row如何用单行反转查询
【发布时间】:2020-10-23 08:06:25
【问题描述】:

我有这个返回一行的查询,我如何在 SQL Server 中将单行反转或转换为没有列标题的单列?

然后我会在列表视图中列出这个查询。

是否可以select * from table已经倒置?

这是我第一次来这里,我的第一个问题我已经看到 UNPIVOTPIVOT 但对我的查询没有意义

SELECT [idObservaciones]
      ,[Facultad]
      ,[Asignatura]
      ,[EscuelaProfesional]
      ,[PlanEstudios]
      ,[SemestreAcademico]
      ,[CiclodeEstudios]
      ,[AreaCurricular]
      ,[CodigodeAsignatura]
      ,[NumeroCreditos]
      ,[PreRequisitos]
      ,[NumeroHorasPractica]
      ,[Modalidad]
      ,[DuracionSemanal]
      ,[NumAula]
      ,[Horario]
      ,[Grupo]
      ,[DuracionSemestre]
      ,[DocenteResponsable]
      ,[ObjetivosEducacionales]
      ,[ResultadosEstudiante]
      ,[IndicadoresDesempeno]
      ,[Sumilla]
      ,[ValoresProfesionales]
      ,[pCompetencias1]
      ,[pCompetencias2]
      ,[pCompetencias3]
      ,[pDesempeno1]
      ,[pDesempeno2]
      ,[pDesempeno3]
      ,[pDesempeno4]
      ,[pResultado1]
      ,[pResultado2]
      ,[pResultado3]
      ,[pResultado4]
      ,[uni1Conte11]
      ,[uni1Conte111]
      ,[uni1Acti1]
      ,[uni1Duracion1]
      ,[uni1Conte12]
      ,[uni1Conte112]
      ,[uni1Acti2]
      ,[uni1Duracion2]
      ,[uni1Conte13]
      ,[uni1Conte131]
      ,[uni1Conte132]
      ,[uni1Conte133]
      ,[uni1Acti31]
      ,[uni1Duracion3]
      ,[uni1Conte115]
      ,[uni1Requi1]
      ,[uni1Acti4]
      ,[uni1Duracion4]
      ,[uni1Biblio]
      ,[uni1Fecha1]
      ,[uni2Conte11]
      ,[uni2Conte111]
      ,[uni2Conte112]
      ,[uni2Conte113]
      ,[uni2Conte114]
      ,[uni2Acti1]
      ,[uni2Duracion1]
      ,[uni2Conte22]
      ,[uni2Conte221]
      ,[uni2Conte222]
      ,[uni2Conte223]
      ,[uni2Acti2]
      ,[uni2Duracion2]
      ,[uni2Conte23]
      ,[uni2Conte231]
      ,[uni2Conte232]
      ,[uni2Conte233]
      ,[uni2Acti31]
      ,[uni2Duracion3]
      ,[uni2Conte24]
      ,[uni2Requi1]
      ,[uni2Acti4]
      ,[uni2Duracion4]
      ,[uni2Biblio]
      ,[uni2Fecha1]
      ,[uni3Conte31]
      ,[uni3Conte311]
      ,[uni3Conte312]
      ,[uni3Conte313]
      ,[uni3Acti1]
      ,[uni3Duracion1]
      ,[uni3Conte32]
      ,[uni3Conte321]
      ,[uni3Conte322]
      ,[uni3Conte323]
      ,[uni3Acti2]
      ,[uni3Duracion2]
      ,[uni3Conte33]
      ,[uni3Conte331]
      ,[uni3Conte332]
      ,[uni3Conte333]
      ,[uni3Conte334]
      ,[uni3Acti31]
      ,[uni32Duracion3]
      ,[uni3Conte34]
      ,[uni3Requi1]
      ,[uni3Acti4]
      ,[uni3Duracion4]
      ,[uni3Biblio]
      ,[uni3Fecha1]
      ,[EstrategiasDidacticas]
      ,[RecursosMateriales]
      ,[uni1Result]
      ,[uni1Eval]
      ,[uni1Peso1]
      ,[uni1UniAprendizaje]
      ,[uni1UniActi]
      ,[uni1PesoIF]
      ,[uni2Result]
      ,[uni2Eval]
      ,[uni2Peso1]
      ,[uni2UniAprendizaje]
      ,[uni2Eval2]
      ,[uni2PesoIF]
      ,[uni2UniAprendizaje2]
      ,[uni2UniActi2]
      ,[uni2PesoRS]
      ,[uni3Result]
      ,[uni3Eval]
      ,[uni3Peso1]
      ,[uni3UniAprendizaje]
      ,[uni3Eval2]
      ,[uni3PesoIF]
      ,[uni3UniAprendizaje2]
      ,[uni3UniActi2]
      ,[uni3PesoRS]
      ,[ReferenciaBibliografica]
      ,[Aprovado]
FROM 
    [dbo].[tobservaciones]
WHERE 
    idExample = 1

【问题讨论】:

标签: c# sql asp.net sql-server azure


【解决方案1】:
select colName,colvalue from
    (SELECT [idObservaciones]
          ,[Facultad]
          ,[Asignatura]
          ,[EscuelaProfesional]
          ,[PlanEstudios]
          ,[SemestreAcademico]
          ,[CiclodeEstudios]
          ,[AreaCurricular]
          ,[CodigodeAsignatura]
          ,[NumeroCreditos]
          ,[PreRequisitos]
          ,[NumeroHorasPractica]
          ,[Modalidad]
          ,[DuracionSemanal]
          ,[NumAula]
          ,[Horario]
      ,[Grupo]
      ,[DuracionSemestre]
      ,[DocenteResponsable]
      ,[ObjetivosEducacionales]
      ,[ResultadosEstudiante]
      ,[IndicadoresDesempeno]
      ,[Sumilla]
      ,[ValoresProfesionales]
      ,[pCompetencias1]
      ,[pCompetencias2]
      ,[pCompetencias3]
      ,[pDesempeno1]
      ,[pDesempeno2]
      ,[pDesempeno3]
      ,[pDesempeno4]
      ,[pResultado1]
      ,[pResultado2]
      ,[pResultado3]
      ,[pResultado4]
      ,[uni1Conte11]
      ,[uni1Conte111]
      ,[uni1Acti1]
      ,[uni1Duracion1]
      ,[uni1Conte12]
      ,[uni1Conte112]
      ,[uni1Acti2]
      ,[uni1Duracion2]
      ,[uni1Conte13]
      ,[uni1Conte131]
      ,[uni1Conte132]
      ,[uni1Conte133]
      ,[uni1Acti31]
      ,[uni1Duracion3]
      ,[uni1Conte115]
      ,[uni1Requi1]
      ,[uni1Acti4]
      ,[uni1Duracion4]
      ,[uni1Biblio]
      ,[uni1Fecha1]
      ,[uni2Conte11]
      ,[uni2Conte111]
      ,[uni2Conte112]
      ,[uni2Conte113]
      ,[uni2Conte114]
      ,[uni2Acti1]
      ,[uni2Duracion1]
      ,[uni2Conte22]
      ,[uni2Conte221]
      ,[uni2Conte222]
      ,[uni2Conte223]
      ,[uni2Acti2]
      ,[uni2Duracion2]
      ,[uni2Conte23]
      ,[uni2Conte231]
      ,[uni2Conte232]
      ,[uni2Conte233]
      ,[uni2Acti31]
      ,[uni2Duracion3]
      ,[uni2Conte24]
      ,[uni2Requi1]
      ,[uni2Acti4]
      ,[uni2Duracion4]
      ,[uni2Biblio]
      ,[uni2Fecha1]
      ,[uni3Conte31]
      ,[uni3Conte311]
      ,[uni3Conte312]
      ,[uni3Conte313]
      ,[uni3Acti1]
      ,[uni3Duracion1]
      ,[uni3Conte32]
      ,[uni3Conte321]
      ,[uni3Conte322]
      ,[uni3Conte323]
      ,[uni3Acti2]
      ,[uni3Duracion2]
      ,[uni3Conte33]
      ,[uni3Conte331]
      ,[uni3Conte332]
      ,[uni3Conte333]
      ,[uni3Conte334]
      ,[uni3Acti31]
      ,[uni32Duracion3]
      ,[uni3Conte34]
      ,[uni3Requi1]
      ,[uni3Acti4]
      ,[uni3Duracion4]
      ,[uni3Biblio]
      ,[uni3Fecha1]
      ,[EstrategiasDidacticas]
      ,[RecursosMateriales]
      ,[uni1Result]
      ,[uni1Eval]
      ,[uni1Peso1]
      ,[uni1UniAprendizaje]
      ,[uni1UniActi]
      ,[uni1PesoIF]
      ,[uni2Result]
      ,[uni2Eval]
      ,[uni2Peso1]
      ,[uni2UniAprendizaje]
      ,[uni2Eval2]
      ,[uni2PesoIF]
      ,[uni2UniAprendizaje2]
      ,[uni2UniActi2]
      ,[uni2PesoRS]
      ,[uni3Result]
      ,[uni3Eval]
      ,[uni3Peso1]
      ,[uni3UniAprendizaje]
      ,[uni3Eval2]
      ,[uni3PesoIF]
      ,[uni3UniAprendizaje2]
      ,[uni3UniActi2]
      ,[uni3PesoRS]
      ,[ReferenciaBibliografica]
      ,[Aprovado]
  FROM [dbo].[tobservaciones]
where idExample = 1) p
unpvot(conValue for colName IN
([idObservaciones]
      ,[Facultad]
      ,[Asignatura]
      ,[EscuelaProfesional]
      ,[PlanEstudios]
      ,[SemestreAcademico]
      ,[CiclodeEstudios]
      ,[AreaCurricular]
      ,[CodigodeAsignatura]
      ,[NumeroCreditos]
      ,[PreRequisitos]
      ,[NumeroHorasPractica]
      ,[Modalidad]
      ,[DuracionSemanal]
      ,[NumAula]
      ,[Horario]
      ,[Grupo]
      ,[DuracionSemestre]
      ,[DocenteResponsable]
      ,[ObjetivosEducacionales]
      ,[ResultadosEstudiante]
      ,[IndicadoresDesempeno]
      ,[Sumilla]
      ,[ValoresProfesionales]
      ,[pCompetencias1]
      ,[pCompetencias2]
      ,[pCompetencias3]
      ,[pDesempeno1]
      ,[pDesempeno2]
      ,[pDesempeno3]
      ,[pDesempeno4]
      ,[pResultado1]
      ,[pResultado2]
      ,[pResultado3]
      ,[pResultado4]
      ,[uni1Conte11]
      ,[uni1Conte111]
      ,[uni1Acti1]
      ,[uni1Duracion1]
      ,[uni1Conte12]
      ,[uni1Conte112]
      ,[uni1Acti2]
      ,[uni1Duracion2]
      ,[uni1Conte13]
      ,[uni1Conte131]
      ,[uni1Conte132]
      ,[uni1Conte133]
      ,[uni1Acti31]
      ,[uni1Duracion3]
      ,[uni1Conte115]
      ,[uni1Requi1]
      ,[uni1Acti4]
      ,[uni1Duracion4]
      ,[uni1Biblio]
      ,[uni1Fecha1]
      ,[uni2Conte11]
      ,[uni2Conte111]
      ,[uni2Conte112]
      ,[uni2Conte113]
      ,[uni2Conte114]
      ,[uni2Acti1]
      ,[uni2Duracion1]
      ,[uni2Conte22]
      ,[uni2Conte221]
      ,[uni2Conte222]
      ,[uni2Conte223]
      ,[uni2Acti2]
      ,[uni2Duracion2]
      ,[uni2Conte23]
      ,[uni2Conte231]
      ,[uni2Conte232]
      ,[uni2Conte233]
      ,[uni2Acti31]
      ,[uni2Duracion3]
      ,[uni2Conte24]
      ,[uni2Requi1]
      ,[uni2Acti4]
      ,[uni2Duracion4]
      ,[uni2Biblio]
      ,[uni2Fecha1]
      ,[uni3Conte31]
      ,[uni3Conte311]
      ,[uni3Conte312]
      ,[uni3Conte313]
      ,[uni3Acti1]
      ,[uni3Duracion1]
      ,[uni3Conte32]
      ,[uni3Conte321]
      ,[uni3Conte322]
      ,[uni3Conte323]
      ,[uni3Acti2]
      ,[uni3Duracion2]
      ,[uni3Conte33]
      ,[uni3Conte331]
      ,[uni3Conte332]
      ,[uni3Conte333]
      ,[uni3Conte334]
      ,[uni3Acti31]
      ,[uni32Duracion3]
      ,[uni3Conte34]
      ,[uni3Requi1]
      ,[uni3Acti4]
      ,[uni3Duracion4]
      ,[uni3Biblio]
      ,[uni3Fecha1]
      ,[EstrategiasDidacticas]
      ,[RecursosMateriales]
      ,[uni1Result]
      ,[uni1Eval]
      ,[uni1Peso1]
      ,[uni1UniAprendizaje]
      ,[uni1UniActi]
      ,[uni1PesoIF]
      ,[uni2Result]
      ,[uni2Eval]
      ,[uni2Peso1]
      ,[uni2UniAprendizaje]
      ,[uni2Eval2]
      ,[uni2PesoIF]
      ,[uni2UniAprendizaje2]
      ,[uni2UniActi2]
      ,[uni2PesoRS]
      ,[uni3Result]
      ,[uni3Eval]
      ,[uni3Peso1]
      ,[uni3UniAprendizaje]
      ,[uni3Eval2]
      ,[uni3PesoIF]
      ,[uni3UniAprendizaje2]
      ,[uni3UniActi2]
      ,[uni3PesoRS]
      ,[ReferenciaBibliografica]
      ,[Aprovado])
) as unpvot

【讨论】:

    【解决方案2】:

    除了 UNPIVOT 之外,一种可能的方法是使用 CROSS APPLY,如果列的数据类型不同,则将每一列转换为 varchar

    SELECT t.col
    FROM [dbo].[tobservaciones]
    CROSS APPLY (
      VALUES (CAST([idObservaciones] AS VARCHAR(2000)))
      ,(CAST([Facultad] AS VARCHAR(2000))) 
      -- ..
      ,(CAST([Aprovado] AS VARCHAR(2000)))
    )  t(col)
    WHERE idExample = 1
    

    【讨论】:

      猜你喜欢
      • 2012-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-25
      • 2019-01-01
      • 2023-01-13
      相关资源
      最近更新 更多