推 teamspike:如果用access的話,是否支援這樣的作法? 08/12 17:04
如果你用SQL2005的話可以這樣幹:
Select 年齡,
(select 姓名 from 年齡表 Y1 where Y1.年齡=Y2.年齡 FOR XML,AUTO)
From 年齡表 Y2
Group By 年齡
第二個欄位會變成
<Y1 姓名="老大"/><Y1 姓名="老四"/>....的XML字串
如果不喜歡它用Tag當分隔的話,可以再用
Replace(Replace(Replace(欄位二,'"/><Y1 姓名="',','),
'<Y1 姓名="',''),'"/>','')
換成你要的分隔
※ 引述《teamspike (市政府7F)》之銘言:
: 話說AVG,MIN,MAX,SUM,COUNT...等aggregation function
: 用來處理基本的資料運算非常方便
: 假設今天的資料表(年齡表)如下:
: 姓名 年齡
: ____________
: 老大 20
: 老二 30
: 老三 30
: 老四 20
: 老五 40
: 欲統計各年齡層有幾個人,使用COUNT可以完成
: SELECT 年齡, COUNT(年齡) AS 年齡人數
: FROM 年齡表
: GROUP BY 年齡
: 得到結果如下:
: 年齡 年齡人數
: _________________
: 20 2
: 30 2
: 40 1
: 問題來囉!
: 如果今天想得到的結果如下:
: 年齡 姓名
: _____________
: 20 老大,老四
: 30 老二,老三
: 40 老五
: 請問使用SQL指令可以做到嗎?
: 日前小弟使用程式抓取資料庫用迴圈判斷去實作這個功能
: 結果執行速度是慢到不行(也才九萬多筆資料)
: 如果SQL指令可以達到那就太好了...QQ
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.74.227.233