sql 查詢如何將結果集 輸出為一段字元串?
01-13
數據如下表所示,輸出結果為要求為「b,c,d,」。
mysql資料庫中一個張表table中欄位A中的數據如下:客戶端是PHP。請寫出查詢語句,謝謝!
一般會有旋轉數據集的功能,不過不知道你用的啥資料庫……
使用linq to sql,query出來後select(tostring).aggregate秒殺
如果是MSSQL的話,可以這樣:SELECT STUFF((SELECT ","+A FROM tableFOR XML PATH("")),1,1,"")
能告訴我為什麼你要這麼做么?我總覺得你的需求有問題。
MySQL :: MySQL 5.0 Reference Manual :: 12.16.1 GROUP BY (Aggregate) Functions
GROUP_CONCAT方法
不報資料庫差評.oracle的話wm_concat
建議看下Sql Cookbook這本書,裡面有各種場景下,各種資料庫下的實現方式,當然也包括你這個結果集轉置的。
FOR XML PATH
當然,我更加願意用輪子哥的linq2sql搜 資料庫名稱+行列轉置
SELECT concat(A) FROM Table(不知道對不對,我地鐵亂寫的)
xml for path
用pdo得到結果集,將每條記錄拼接成一個字元串就可以了。超簡單
oracle的話:(假設列名是A):
select listagg(A,",") within group(order by A) from YOUR_TABLE;更多的用法,查詢listagg這個函數。query出來後implode(",",$queryResult)不就可以?
with t as(select empno,rownum rn from emp where rownum)select a.empno,b.empno,c.empno from t a,t b,t c where a.rn=1 and b.rn=2 and c.rn=3/
推薦閱讀:
※沒有任何基礎的人怎麼學SQL?
※PostgreSQL 有哪些經典入門書籍?
※如何評價cmu-db的peloton資料庫?
※從編程語言設計的角度,如何評價SQL語言?
※一條LEFT JOIN+ORDER BY的sql語句優化問題?
TAG:SQL |