SQL行轉列統計問題
今天在CSDN上看見有人提出如下的SQL統計問題,於是幫他寫了一個SQL語句。
問題如下:
表結構如下
要實現的效果如下:
這個涉及行專列問題,SQL語句如下:
insert into product values('13303','茶杯','藍色','a',20);
insert into product values('13303','茶杯','藍色','b',10);
insert into product values('13303','茶杯','藍色','c',30);
insert into product values('13303','茶杯','灰色','a',10);
insert into product values('13304','水杯','白色','b',20);
declare @sql varchar(8000)
set @sql = 'select [id],[name],[color] '
select @sql = @sql + ' , max(case [size] when ''' + [size] + ''' then number else 0 end) [' + [size] + ']'
from (select distinct [size] from product) as a
set @sql = @sql + ' from product group by [id],[name],[color]'
exec(@sql)
最終顯示效果如下圖:
SQL行列轉換+合併操作,原帖地址:http://bbs.csdn.net/topics/390348963
Create table 資料 --建立表
(
ID Int IDENTITY(1,1) not null,
編號 Varchar(50),
明細 Varchar(50),
Primary Key(ID)
);
Insert Into 資料
Select 1,'a' Union all
Select 1,'b' Union all
Select 1,'c' Union all
Select 2,'a' Union all
Select 2,'b' Union all
Select 2,'d'Union all
Select 3,'a'Union all
Select 3,'b'
--建立自定義函式
Create Function CSDN
(
@mx Varchar(50)
)
Returns Varchar(8000)
as
Begin
Declare @str Varchar(8000)
Set @str = ''
Select @str = @str + cast(明細 as Varchar(50)) + ',' from 資料 Where 編號 = @mx
Set @str = SubString(@str,1,len(@str)-1)
Return(@str)
End
--呼叫自定義函式得到結果
Select Distinct 編號,dbo.CSDN(編號) as 明細From 資料;
相關文章
- SQL 行轉列,列轉行SQL
- 解析SQL Server中行轉列問題SQLServer
- SQL列轉行SQL
- 行列轉換,列行轉換統計
- SQL 列行轉換SQL
- sql的行轉列(PIVOT)與列轉行(UNPIVOT)SQL
- sql實現行轉列SQL
- My SQL 列轉行操作SQL
- Oracle行轉列、列轉行的Sql語句總結OracleSQL
- SQL優化案例-從執行計劃定位SQL問題(三)SQL優化
- SQL 行轉列 PIVOT 學習示例SQL
- Oracle 行轉列的sql語句OracleSQL
- Databricks 第11篇:Spark SQL 查詢(行轉列、列轉行、Lateral View、排序)SparkSQLView排序
- SQL最佳化案例-從執行計劃定位SQL問題(三)SQL
- SQL執行計劃異常引起的效能問題SQL
- SQL執行計劃異常 引起的效能問題SQL
- 老生常談SQL2005語句實現行轉列,列轉行SQL
- Mysql - 行轉列、列轉行MySql
- sql關於連續日期的統計報表問題SQL
- Oracle優化案例-從執行計劃定位SQL問題(三)Oracle優化SQL
- 標準SQL寫法的重複列問題SQL
- 陣列和列表的轉換問題陣列
- 網友問題摘抄,不定列轉換
- Spark SQL中列轉行(UNPIVOT)的兩種方法SparkSQL
- Sql中游標和加鎖的問題 (轉)SQL
- 事務型系統由SQL遷移到NoSQL問題總結(轉)SQL
- 通過執行計劃中的CONCATENATION分析sql問題SQL
- 透過執行計劃中的CONCATENATION分析sql問題SQL
- 在ASP程式中執行SQL語句的安全性問題 (轉)SQL
- hive經典案列--top N(行轉列\列轉行)Hive
- 捕獲問題SQL解決過度CPU消耗問題-- 轉載SQL
- CMD執行命令列時卡住的問題命令列
- oracle 11g的行轉列、列轉行Oracle
- date列統計資訊陳舊導致sql沒有選擇最優執行計劃SQL
- 用SQL解決有向圖問題(轉)SQL
- Mysql執行批量sql時的格式問題MySql
- MS SQL Server常見問題 -- 分組 去重複 查詢 統計SQLServer
- sql內建函式pivot強大的行轉列功能SQL函式