Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL заявка; хоризонтално към вертикално

Можете да използвате UNION ALL :

select No, 'Flag_1' as FlagName, Flag_1 as Flag_Value
from yourtable
union all
select No, 'Flag_2' as FlagName, Flag_2 as Flag_Value
from yourtable
union all
select No, 'Flag_3' as FlagName, Flag_3 as Flag_Value
from yourtable

Или UNPIVOT :

select no, FlagsName, flag_value
from yourtable
unpivot
(
    flag_value
    for FlagsName in (Flag_1, Flag_2, Flag_3)
) u

Вижте SQL Fiddle с демонстрация




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mvc-Mini-Profiler v1.7 на EF 4.1 Code-First проект не профилира SQL

  2. Вместо тригер в SQL Server губи SCOPE_IDENTITY?

  3. Изходният параметър на съхранена процедура връща @Value

  4. SQL Server отчита броя на отделните стойности във всяка колона на таблица

  5. Заявка с оптимална ефективност за най-нов запис за всеки N