SQL 쿼 리 문 행 열 가로 표시 인 스 턴 스 분석

2748 단어 SQL검색 어행 열
본 고 는 SQL 조회 문 줄 의 가로 방향 표시 에 관 한 두 가지 예 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
예시 1:
SQL 쿼 리 문 줄 가로로 표시 중 access 에 CASE 가 없 으 면 IIF 로 대체 합 니 다.
select  iif(sex='1','남','여')  from  tablename

select country, sum(case when type='A' then money end) as A,
sum(case when type='B' then money end) as B,
sum(case when type='C' then money end) as C
from table1
group by country

예시 2:

/*
  :         (tb)  :
        
      74
      83
      93
      74
      84
      94
   (      ): 
            
---- ---- ---- ----
   74  84  94
   74  83  93
-------------------
*/

create table tb(   varchar(10) ,    varchar(10) ,    int)
insert into tb values('  ' , '  ' , 74)
insert into tb values('  ' , '  ' , 83)
insert into tb values('  ' , '  ' , 93)
insert into tb values('  ' , '  ' , 74)
insert into tb values('  ' , '  ' , 84)
insert into tb values('  ' , '  ' , 94)
go

--SQL SERVER 2000   SQL,       、  、       。(   )
select    as    ,
max(case    when '  ' then    else 0 end)   ,
max(case    when '  ' then    else 0 end)   ,
max(case    when '  ' then    else 0 end)   
from tb
group by   

--SQL SERVER 2000   SQL,       、  、       。(   )
declare @sql varchar(8000)
set @sql = 'select    '
select @sql = @sql + ' , max(case    when ''' +    + ''' then    else 0 end) [' +    + ']'
from (select distinct    from tb) as a
set @sql = @sql + ' from tb group by   '
exec(@sql) 

--SQL SERVER 2005   SQL。
select * from (select * from tb) a pivot (max(  ) for    in (  ,  ,  )) b

--SQL SERVER 2005   SQL。
declare @sql varchar(8000)
select @sql = isnull(@sql + '],[' , '') +    from tb group by   
set @sql = '[' + @sql + ']'
exec ('select * from (select * from tb) a pivot (max(  ) for    in (' + @sql + ')) b')

---------------------------------

/*
  :             ,  ,      :
                   
---- ---- ---- ---- ------ ----
   74  84  94  84.00 252
   74  83  93  83.33 250
*/
이상 은 본문의 전체 내용 이 므 로 여러분 의 학습 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기