"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como converter com eficiência colunas em linhas no SQL Server?

Como converter com eficiência colunas em linhas no SQL Server?

Postado em 2025-04-13
Navegar:533

How Can I Efficiently Convert Columns to Rows in SQL Server?

Guia de profundidade para conversão de colunas no SQL Server

Ao processar tabelas contendo um grande número de colunas métricas, a conversão dessas colunas em linhas é muito benéfica para fins de análise e relatório. Essa transformação envolve a reconstrução dos dados para criar novas tabelas com diferentes esquemas.

declaração de problemas

Considere a seguinte estrutura da tabela:

[ID] [EntityID] [Indicator1] [Indicator2] [Indicator3] ... [Indicator150]

O objetivo é converter essas colunas métricas em linhas, criando assim uma nova tabela com o seguinte esquema:

] Solução
[ID] [EntityId] [IndicatorName] [IndicatorValue]

unpivot ([coluna Unpivot] para [coluna Pivot] em ([Valores Pivot]))

Neste exemplo, a coluna Unpivot representa o valor do indicador (por exemplo, "indicador1", "indicador2", etc.), e a coluna Pivot representa o próprio nome da coluna. A consulta a seguir ilustra como usar o Unpivot:

UNPIVOT ([unpivot column] FOR [pivot column] IN ([pivot values]))

executando esta consulta, a coluna métrica será convertida em linhas e o nome e o valor métricos serão preenchidos com a nova coluna.

select id, entityId,
  indicatorname,
  indicatorvalue
from yourtable
unpivot
(
  indicatorvalue
  for indicatorname in (Indicator1, Indicator2, Indicator3)
) unpiv;

Além do Unpivot, existem outras maneiras de converter colunas em linhas:

Cross Aplicar usando a Union All:

Este método envolve o uso de Aplicação cruzada e união para especificar explicitamente cada nome e valor métrico.

    Cross Aplicar usando valores:
  • é semelhante ao método acima, mas a cláusula de valores é usada no cruzamento.
  • sql dinâmico:
  • Para situações com um grande número de colunas indicadoras, você pode usar o SQL dinâmico para gerar automaticamente instruções de consulta.
  • A escolha de uma solução depende das necessidades específicas e da versão do servidor SQL usada.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3