豎表變行表

2021-03-31 08:56:31 字數 1681 閱讀 4160

--豎表變行表

--建立表

create table a(

工號 varchar(20),

日期 **alldatetime,

時間 varchar(20)

)--插入測試資料

insert into a select '01', '2004-10-01', '07:50'

union select '01', '2004-10-01', '11:35'

union select '01', '2004-10-01', '14:20'

union select '01', '2004-10-02', '08:01'

union select '01', '2004-10-02', '14:30'

union select '02', '2004-10-01', '07:55'

union select '02', '2004-10-02', '07:58'

union select '03', '2004-10-01', '07:56'

--建立儲存過程

create proc p_t

asdeclare @id varchar(20),@date **alldatetime,@time varchar(50)

select * into #a from a order by 工號,日期,時間

update #a set 時間=case when (工號=@id) and (日期=@date) then @time else 時間 end,

@time=case when (工號=@id) and (日期=@date) then @time+','+時間 else 時間 end,

@id=工號,@date=日期

select 工號,日期,max(時間) as 時間 from #a group by 工號,日期 order by 工號

--執行

exec p_t

--測試結果

工號 日期 時間

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

01 2004-10-01 00:00:00 07:50,11:35,14:20

01 2004-10-02 00:00:00 08:01,14:30

02 2004-10-01 00:00:00 07:55

02 2004-10-02 00:00:00 07:58

03 2004-10-01 00:00:00 07:56

(所影響的行數為 5 行)

select [empid] from [employee]

得出結果:

張三李四

王五...

...想要將它合併成這種結果:

張三,李四,王五...,...

declare @s varchar(8000)

set @s=''

select @s=@s+','+[empid] from [employee]

print stuff(@s,1,1,'')

declare @sql varchar(2000)

set @sql=''

select @sql=@sql+[empid]+',' from [employee]

set @sql=left(@sql,len(@sql)-1)

print @sql

Word橫表變豎表

在用word2010設計資料表時發現欄位太多了,在正常的頁面大小下橫表空間不夠,於是想將橫錶轉為豎表,這樣欄位再多也不怕。可以找遍了選單功能項也沒發現有 橫豎轉換的,在網上查了,說word中複製貼上到excel,貼上時選擇 選擇性貼上 然後 轉置 注意分兩步操作,第一步將word的 原樣複製到exc...

SQL 豎表變橫表

豎表變橫表的情況,大多數是要將資料分組,然後用一行顯示所有組的資料。比如 支付方式 支付金額 支付寶100 20支付寶 5060 那麼變橫表後,就變成 支付寶150 80這裡介紹另一種情況,使用場景是,把按 key value 形式儲存的資料,用 key 的各種值作為表頭,顯示在 ui 上。直接看 ...

SQL豎錶轉橫表 橫錶轉豎表

豎錶轉橫表 豎表結構 name course grade 張三語文 75張三 數學80 張三英語 90李四 語文95 李四數學 55轉換後橫表結構 name 語文數學 英語張三 7580 90李四 9555 0sql語句 1 select name,2sum case course when 語文 ...

豎錶轉橫表

今天遇到一個要求將豎錶轉換成橫表。以前看過豎錶轉橫表但沒寫過,現記錄下來以供學習。任務大體要求如下 教師號 星期號 是否有課 有 有 有 有 有 寫一條sql語句讓你變為這樣的表 教師號 星期一 星期二 星期三 建表 create table teac info teac no number,day...

oracle SQL豎錶轉橫表

oracle sql豎錶轉橫表 t t student表查詢記錄如下,要轉成橫表 姓名 課程 成績 1 張飛 語文 80 2 張飛 數學 87 3 關羽 語文 97 4 張飛 英語 68 5 關羽 數學 53 6 劉備 語文 90 方法一 用decode實現,select t.name,sum de...