sql 實現表的行列轉換

2021-05-24 21:46:49 字數 1311 閱讀 4729

create proc editorwork_accountbytopicname1--編輯工作按文章內容型別統計各欄目的文章數

@starttime varchar(50),--查詢開始時間

@endtime varchar(50)--查詢結束時間

asdeclare @sql varchar(8000)

set @sql='select content_topic_name '

select @sql=@sql+',['+ctname+']=sum(case ctname when '''+ctname+''' then counts else 0 end)' from (select count(a.id) as counts,ctname=isnull(case a.infocontenttype when 1 then '入門' when 2 then '技術' when 3 then '市場' when 4 then '理論研究' when 5 then '產品分析' when 6 then '應用實施' when 7 then '典型案例' end,'zero'),b.content_topic_name  from articleinfo a,content_topic b where b.content_topic_id=a.contenttopic and a.contenttopic<>0 and a.addtime<@endtime and a.addtime>@starttime group by infocontenttype,content_topic_name) aa

group by ctname

print @sql

exec(@sql+' from (select count(a.id) as counts,ctname=isnull(case a.infocontenttype when 1 then ''入門'' when 2 then ''技術'' when 3 then ''市場'' when 4 then ''理論研究'' when 5 then ''產品分析'' when 6 then ''應用實施'' when 7 then ''典型案例'' end,''zero''),b.content_topic_name from articleinfo a,content_topic b where b.content_topic_id=a.contenttopic and a.contenttopic<>0 and a.addtime<'''+@endtime+''' and a.addtime>'''+@starttime+''' group by infocontenttype,content_topic_name ) aa group by content_topic_name')

go

SQL 實現行列轉換

今天有個有這樣的需求,那就看看這個例項吧 create table tb 姓名 varchar 10 課程 varchar 10 分數 int insert tb select 張三 語文 60 union all select 張三 數學 70 union all select 張三 英語 80 ...

sql行列轉換

問題 如果上述兩表互相換一下 即表結構和資料為 姓名 語文 數學 物理 張三 74 83 93 李四 74 84 94 想變成 得到如下結果 姓名 課程 分數 李四 語文 74 李四 數學 84 李四 物理 94 張三 語文 74 張三 數學 83 張三 物理 93 create table tb ...

SQL 行列轉換

資料列轉換成行。其中一列需要轉換成行,因為列的值不確定所以用動態執行sql sql物件拼寫出要轉換行的列的值。declare sql varchar 1000 select sql isnull sql advertise name from tbl advertise master select ...