1. 程式人生 > >行轉列(動態列)

行轉列(動態列)

create table #
(
    id int identity,
    pid varchar(100),
    comid varchar(100)
)
insert #
select '001', 'a' union all
select '001', 'b' union all
select '002', 'b' union all
select '003', 'c' union all
select '003', 'd' union all
select '003', 'd' union all
select '004', 'f'
--SQL
declare @sql varchar(max)
set @sql = ''
select @sql = @sql + ',' + QUOTENAME(comid) from (select distinct comid from #) a
print @sql
set @sql = '
select * from
(select pid, pidcopy = pid, comid from #) a
pivot
(count(pidcopy) for comid in('+ STUFF(@sql, 1, 1, '') +')) b
'
print @sql
exec(@sql)

相關推薦

(動態)

create table #(    id int identity,    pid varchar(100),    comid varchar(100))insert #select '001', 'a' union allselect '001', 'b' union

SQL Server 轉行。多成一

一、多行轉成一列(並以","隔開)表名:A表資料:想要的查詢結果:查詢語句:SELECT name , value = ( STUFF(( SELECT ',' + value FROM A

SQL 多成一

CREATE TABLE [dbo].[a]([id] [nchar] (10) COLLATE Chinese_PRC_CI_AS NULL,[name] [nchar] (10) COLLATE Chinese_PRC_CI_AS NULL,[value] [nchar]

資料庫一一行多

如題: select max(case when name='1' then [temp] else null end) as temp1 , max(case when name='2' t

oracle 存儲過程-動態,解決。

pla gin sel rom con left join from blog creat 包頭 create or replace package pro_test as TYPE out_cursor IS REF CURSOR; procedure A

mybatis 動態

  SELECT user_name , MAX(CASE course WHEN '數學' THEN score END ) 數學, MAX(CASE course WHEN '語文' THEN score END ) 語文, MAX(CASE course WHEN '英語'

SQL動態構造方法

SQL行轉列的動態構造方法 /*假設有張學生成績表(tb)如下: 姓名 課程 分數 張三 語文 74 張三 數學 83 張三 物理 93 李四 語文 74 李四 數學 84 李四 物理 94 想變成(得到如下結果): 姓名 語文 數學 物理 ---- ---- ---- ---- 李四 74 8

SQL Server 動態(引數化表名、分組欄位、欄位值)

一.本文所涉及的內容(Contents) 二.背景(Contexts)   其實行轉列並不是一個什麼新鮮的話題了,甚至已經被大家說到爛了,網上的很多例子多多少少都有些問題,所以我希望能讓大家快速的看到執行的效果,所以在動態列的基礎上再把表、分組欄位、行轉列欄位、值這四個行轉列固定需要的值變成真正意義的

ASP.NET SQLServer ,不固定動態 的實現

前言 剛開始工作就成了被溫水煮的青蛙的話,那該有多難吃啊。所以要保持冷靜的頭腦,好好思考自己該做的不該做的事,好好的提升自己的能力,給自己加點料。嗯,這樣就算真被煮熟了,也會可口很多吧。 問題背景 這個問題是前面工作中遇到的,經過一番努力最終解決了。在

Oracle 動態SQL實現SQL查詢子集

引言 我們都知道Oracle的Pivot的In()裡是不能跟SQL查詢語句的,必須是已知的字串結果,然而我專案中遇到的需求這個In 並不是靜態的,而是根據我傳遞的條件來篩選,一開始想的是解析XML,可惜轉為XML之後,有相同的重複的節點,解析太麻煩,於是想通過

MySQL儲存過程的動態

轉載:http://segmentfault.com/a/1190000004314724?ref=myread MySQL儲存過程中使用動態行轉列 最近做專案關於資料報表處理,然而資料庫儲存格式和報表展現形式不同,需要進行一下行轉列的操作,在做上一個專案的時候也看

mysql動態

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 DROP TABLE IF EXISTS

MySql 動態整理

在開發過程中,我們或許經常碰到這樣的需求,即將某些sql查詢資料實現動態行轉列。 舉例來說:一個學生參加過多次考試,如果想知道該學生最近幾次考試語文的成績,如下圖: 對於使用者來說,我們希望看到的如下圖(即資料動態實現行轉列): 下面看資料表結構: CREAT

mysql 動態

前言: mysql的行轉列並沒有mssql中的pivot 測試資料: DROP TABLE IF EXISTS `mytest`; CREATE TABLE `mytest` ( `id` int(11) NOT NULL AUTO_INCREMENT, `cl

在論壇中出現的比較難的sql問題:39(動態 動態日期問題)

最近,在論壇中,遇到了不少比較難的sql問題,雖然自己都能解決,但發現過幾天后,就記不起來了,也忘記解決的方法了。 所以,覺得有必要記錄下來,這樣以後再次碰到這類問題,也能從中獲取解答的思路。 求一SQL語句。 create table #tab ( col1

資料庫動態

--行列互轉 /*********************************************************************************************************************************

sqlserver報表統計——引數化動態PIVOT

先列出所有表結構: --title 報表 --table 實收水費:hx_t_received --欄位 收費部門id:hx_fdepartmentid 1、收費部門名稱:hx_fdepartmentname 應收水費資訊ID:hx_freceivableid --

SQL

png 英語 姓名 create case when src clas 行轉列 序號 一、使用場景   當系統中有匯總和明細的需求時,一般通過SQL來實現,匯總 就是 根據條件顯示出全部的數據,明細 就是 一條匯總對應的詳細信息。   行轉列通常用於實現明細的時候。

mysql

行轉列最近遇到一需求原始數據如下:mysql> select id,sdkname,sid,date,total_count from u1ge_query_log;+------+----------------+------+------------+-------------+| id | s

sql內置函數pivot強大的功能

子查詢 註意 ges 中一 rom cnblogs blog 聚合函數 星期六 http://blog.csdn.net/xb12369/article/details/8149608 http://www.cnblogs.com/lwhkdash/archive/20