sql server,求sql語句把單列的資料分為多行顯示

時間 2022-03-03 17:10:08

1樓:匿名使用者

declare @sql varchar(8000)select @sql = isnull(@sql + '],[' , '') + 費用 from a group by 費用

set @sql = '[' + @sql + ']'

exec ('select * from (select * from a) a pivot (max(金額) for 費用 in (' + @sql + ')) b')

2樓:匿名使用者

-- 較長,湊合用吧,表名test, 三個字段分別設為yf,fy,je

select

yf,max(case when fy in ('診療費','注射費') then fy else null end),

max(case when fy in ('診療費','注射費') then je else null end),

max(case when fy in ('**費','其他費') then fy else null end),

max(case when fy in ('**費','其他費') then je else null end)

from (select

t.*,

case

when fy in ('診療費','**費') then 1

when fy in ('注射費','其他費') then 2

end grp

from (select yf,fy,je from test where fy in ('診療費','**費','注射費')

union all

select yf,'其他費' fy,sum(je)je from test

where fy not in ('診療費','**費','注射費')

group by yf) t) t1

group by yf,grp

-- 下面這個語句僅供參考,為其他費用不需彙總時提供乙個思路

select

yf,max(case when id%2 <> 0 then fy else null end),

max(case when id%2 <> 0 then je else null end),

max(case when id%2 = 0 then fy else null end),

max(case when id%2 = 0 then je else null end)

from

(select

t1.*,

case when id % 2 = 0 then id - 1 else id end grp

from (select

t.*,row_number()over(order by yf) id

from test t) t1) t2

group by yf,grp

3樓:

通過記錄行迴圈或cusor進行處理,插入新的表變數或臨時表中,表的結構為想要的結果,然後顯示出來就行了。

4樓:匿名使用者

你可以把這個表關聯兩次,取別名a、b。然後第一列單費用取a表中單,後邊的費用取b表的。

5樓:魂羽

你這就沒有唯一號嗎?沒有規律可尋啊,你需要把所有規律都寫出來 然後套用case when語句

大概是這樣的 case when (月份=『09』and 費用=『診療費』 then 月份,費用1,金額,費用2,金額2 when 月份.....)

像這樣如此往復

6樓:雲天英雄

這個用前端設計;用單純的查詢輸出這樣的結果,比較複雜,也犧牲效能~

求sql高手----將一條記錄中的某個字段拆分,多行顯示 10

7樓:匿名使用者

4行變成1行?如果用sqlserver的話,可以用一種很詭異的方法:selectdistinct','+sale_itemfromsale_reportforxmlpath('')樓主可以測試一下,最後用乙個forxmlpath('')就好。

我上面的sql執行結果為:,c,a,b

8樓:冰痕

樓主是怎麼做到的,我現在也遇到類似的問題了!

sql server語句 單行數字資料拆分成多行

9樓:匿名使用者

create table t

(roomid varchar(10),

bednum int

)insert into t values('1000',        2)

insert into t values('1011',        1)

insert into t values('1012',        2)

insert into t values('1013',        4)

--如果bednum小於等於2047

select t.*,number from t cross join master.dbo.spt_values b

where type='p' and  number<=bednum and number>0

--如果bednum小於等於32767

with ctas(

select roomid,bednum,1 as number from t

union all

select roomid,bednum,number+1 from ct where number

sql server 如何把1列多行資料 合併成一列顯示,具體格式如下:

10樓:匿名使用者

修改bai前:1列du多行資料

修改後:zhi合併成一列示例語句select

類別dao

專,名稱 = (

stuff(

(select ',' + 名稱 from table_a where 類別 = a.類別 for xml path('')),

1,1,'')

)from table_a as a group by 類別把得到的內容以xml的形式顯示屬

for xml path('')

把拼接的內容的第乙個「,」去掉

stuff((select ',' + ep_name from ep_detail where ep_classes = a.ep_classes for xml path('')), 1, 1, '')

11樓:匿名使用者

select stuff((select ','+title from tb for xml path('')),1,1,'')

sql server 如何把1列多行資料 合併成一列顯示?

sqlserver用sql語句查詢結果插入到新的資料庫中

可以這樣子寫 先寫乙個自定義函式 create function cre funcation a int returns varchar 2000 as begin declare str varchar 2000 set str select str str rtrim a.b from test...

SQL Server建立檢視時SQL語句怎麼寫

歐力士中國 1.2種寫法都可以 2.3個表的話,可以寫成from 學生資訊 a 學生資訊 b,輔導員資訊 c where a.所屬班級 b.班級編號 and c.輔導員編號 b.輔導員 jg 陳 2種寫法有區別 上面的相當於inner join 三個表可以寫在from後面,同樣的效果也是inner ...

SQL語句在SQL Server中建立表時如何引用其他表的字段來進行計算

4終 1 登陸sql server。2 單擊資料庫,選擇要在哪個資料庫建立表。3 新建查詢按鈕,進入編輯介面。4 以建立學生表為例。5 將建立好的表儲存,就完成了。注意事項 表之間的列要用英文的 逗號 隔開,表的sql語句不區分大小寫,sql語句只能在整個編輯結束時才能用分號,也可以不用分號。 ba...