當前位置:首頁 » 編程語言 » 行轉列sqldb2
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

行轉列sqldb2

發布時間: 2022-01-27 06:34:50

sql 行轉列

我這里兩種都給你介紹,行轉列和列轉行:

列轉行——

錄入經營范圍時候會遇到列傳行的問題解決方案如下:

在temp1 表有一下欄位內容:

② 如何實現行轉換成列,列轉化為行在DB2中如何解決,急!!急!!!急!!!!

你的是什麼資料庫? sql server資料庫: SELECT max(case id when 'a' then s1 end)a, max(case id when 'b' then s1 end)b, max(case id when 'c' then s1 end)c, max(case id when 'd' then s1 end)d FROM T1 union all SELECT max(case id when 'a' then s2 end)a, max(case id when 'b' then s2 end)b, max(case id when 'c' then s2 end)c, max(case id when 'd' then s2 end)d FROM T1 union all SELECT max(case id when 'a' then s3 end)a, max(case id when 'b' then s3 end)b, max(case id when 'c' then s3 end)c, max(case id when 'd' then s3 end)d FROM T1

③ sql 行轉列

SELECT
*
FROM ( 你的SQL 放在這裡面
) bb PIVOT( MAX(timePoint) FOR PName( [pm2.5], [nox], [.....] ) ) AS pvt

[pm2.5],這種你有一個要列一個。

④ sql如何把行數據變為列數據

看這個..
SQLServer中行轉列及列轉行且加平均值及匯總值的Sql2000與Sql2005示例http://www.lmwlove.com/ac/ID451

⑤ db2如何實現行列轉換

Focusky提供9種圖表形式:柱狀圖、散點圖、餅圖、折線圖、面積圖、堆疊圖、雷達圖、混合圖、南丁格爾玫瑰圖和表格。每種圖表的表格都可以進行行列轉換。那麼,Focusky怎麼實現表格的行列轉換呢?下面,小編就為大家介紹一下Focusky表格行列轉換方法。

1、選中圖表,然後點擊「編輯數據」進入圖數據界面


2、單擊轉換按鈕,進行表格行列轉換

以上就是關於「Focusky怎麼實現表格的行列轉換」的方法介紹,希望對大家有所幫助哦!

⑥ sql語句行轉列 怎麼轉啊

--聲明變數

declare@sqlvarchar(1000),@num_dataint,@num_allvarchar(2000),@num_numint,@table_sqlvarchar(2000)

set@num_num=0

--判斷並創建表

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[records]')andOBJECTPROPERTY(id,N'IsUserTable')=1)

droptable[dbo].[records]

createtablerecords(

[id]int,

[name]varchar(50),

[sex]varchar(10),

[num]int

)

--插入數據

insertintorecordsvalues(1,'tom','男',2)

insertintorecordsvalues(1,'tom','男',3)

insertintorecordsvalues(1,'tom','男',4)

insertintorecordsvalues(1,'tom','男',5)

--全選表中數據

select*fromrecords

--全選num列數據

selectnumas'數據'fromrecords

--釋放游標

deallocateselect_num

--為『selectnumfromrecords』建立游標

declareselect_numscrollcursorforselectnumas'shuju'fromrecords

--打開游標

openselect_num

--獲得第一條數據

fetchnextfromselect_numinto@num_data

set@num_all=convert(varchar,@num_data)+','

set@num_num=@num_num+1;

--如果獲取成功,繼續獲得數據

while@@fetch_status=0

begin

fetchnextfromselect_numinto@num_data

set@num_num=@num_num+1;

set@num_all=@num_all+convert(varchar,@num_data)+','

end

--關閉游標

closeselect_num

print@num_num

--set@num_num=@num_num-1;

declare@iint

set@i=1

print@num_num

print@i

set@table_sql='createtablenumall(idint,namevarchar(50),sexvarchar(10)'

print@table_sql

while@num_num>=1

begin

set@table_sql=@table_sql+',num'+convert(varchar,@i)+'int'

set@num_num=@num_num-1;

set@i=@i+1

end

set@table_sql=@table_sql+')'

print@table_sql

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[numall]')andOBJECTPROPERTY(id,N'IsUserTable')=1)

droptable[dbo].[numall]

exec(@table_sql)

declare@insert_sqlvarchar(2000)

set@insert_sql='insertintonumallvalues(1,'+'''tom'','+'''男'''

print@insert_sql

openselect_num

--獲得第一條數據

fetchnextfromselect_numinto@num_data

set@insert_sql=@insert_sql+','+convert(varchar,@num_data)

--如果獲取成功,繼續獲得數據

while@@fetch_status=0

begin

fetchnextfromselect_numinto@num_data

set@insert_sql=@insert_sql+','+convert(varchar,@num_data)

end

set@insert_sql=@insert_sql+')'

print@insert_sql

exec(@insert_sql)

--insertintonumallvalues(1,'tom','男',2,3,4,5,5)

select*fromnumall

試試吧,數據雖然有點出入,但已經說明問題了!!!

⑦ sql行轉列

SELECT e.NAME as name,
count(case when DATEPART(year,c.START_TIME)=2014 then 1 else null end ) as count2014,
count(case when DATEPART(year,c.START_TIME)=2015 then 1 else null end ) as count2015
from ENVI_DATA_STATISTIC_COMP c
LEFT JOIN ENVI_CITY e on e.CITY_ID=c.CITY_ID
where c.COMP_NAME like '%藍天白雲%' and INDEX_TYPE='12'
and (c.START_TIME like '%2014-08%' or c.START_TIME like '%2015-08%' ) and STATISTIC_TYPE='1' and c.VALID_FLAG='1'
group by name

應該是醬紫的,使用case when 轉換~

⑧ sql 用select語句進行行轉列

我們來看看一個小列子。有一個游戲玩家充值表(僅僅為了說明,舉的一個小例子),

CREATETABLE[Inpours]
(
[ID]INTIDENTITY(1,1),
[UserName]NVARCHAR(20),--游戲玩家
[CreateTime]DATETIME,--充值時間
[PayType]NVARCHAR(20),--充值類型
[Money]DECIMAL,--充值金額
[IsSuccess]BIT,--是否成功1表示成功,0表示失敗
CONSTRAINT[PK_Inpours_ID]PRIMARYKEY(ID)
)

INSERTINTOInpoursSELECT'張三','2010-05-01','支付寶',50,1

INSERTINTOInpoursSELECT'張三','2010-06-14','支付寶',50,1

INSERTINTOInpoursSELECT'張三','2010-06-14','手機簡訊',100,1

INSERTINTOInpoursSELECT'李四','2010-06-14','手機簡訊',100,1

INSERTINTOInpoursSELECT'李四','2010-07-14','支付寶',100,1

INSERTINTOInpoursSELECT'王五','2010-07-14','工商銀行卡',100,1

INSERTINTOInpoursSELECT'趙六','2010-07-14','建設銀行卡',100,1

下面來了一個統計數據的需求,要求按日期、支付方式來統計充值金額信息。這也是一個典型的行轉列的例子。我們可以通過下面的腳本來達到目的

SELECT
CreateTime,[支付寶],[手機簡訊],
[工商銀行卡],[建設銀行卡]
FROM
(
SELECTCONVERT(VARCHAR(10),CreateTime,120)ASCreateTime,PayType,Money
FROMInpours
)P
PIVOT(
SUM(Money)
FORPayTypeIN
([支付寶],[手機簡訊],[工商銀行卡],[建設銀行卡])
)AST
ORDERBYCreateTime

⑨ SQL語句行轉列

根據樓主的描述,特為樓主總結如下,在SqlServer裡面行列轉換的語法一般是: select 欄位, sum(case when 要轉換的行單元格的欄位名='行欄位內容' then 聚合的欄位名 end ) as 自定義的列標題1 from 表的名字 group by 欄位(注意,分組聚合就是根據這個欄位來的,具體到樓主的問題,這里的欄位就應該是org_id) 如果有多個列,之間用逗號隔開就可以了,最後一個參數和from之間不要用逗號。 具體到樓主的顯示效果就可以這樣寫了。代碼參考如下: Select org_id , sum(case when channel ='團險' then PREM end) As '團險保費' , sum(case when channel ='個險' then PREM end) As '個險保費 From 你的表名 Group By org_id

⑩ db2 SQl語句行變列的問題

SELECT
MAX(CASE month WHEN '201201' THEN acount ELSE null END) AS '201201',
MAX(CASE month WHEN '201202' THEN acount ELSE null END) AS '201202' ,
MAX(CASE month WHEN '201203' THEN acount ELSE null END) AS '201203'
FROM (你的這個結果集或則表名稱)

還有你如果想得到201201這個倆行結果,那麼你還得提供一個欄位區分它們,進行分組