mysql 合併多行資料到一行
假設兩個表a,b,b中通過欄位id與a表關聯,a表與b表為一對多的關係。假設b表中存在一欄位name,現需要查詢a表中的記錄,同時獲取儲存在b表中的name資訊,按照常規查詢,b表中有多少記錄,則會顯示多少行,如果需要只顯示a表記錄行數,則需要把查詢name欄位得到的多行記錄進行合併,可以通過程式實現,但也可直接在sql層完成。
方法:
利用group_concat()方法,引數為需要合併的欄位,合併的欄位分隔符預設為逗號,可通過引數separator指定,該方法往往配合group by 一起使用。
例子 :
select a.*,group_concat(b.name separator '-') as name from a left join b on a.id=b.id group by a.id;
相關推薦
mysql 合併多行資料到一行
假設兩個表a,b,b中通過欄位id與a表關聯,a表與b表為一對多的關係。假設b表中存在一欄位name,現需要查詢a表中的記錄,同時獲取儲存在b表中的name資訊,按照常規查詢,b表中有多少記錄,則會顯示多少行,如果需要只顯示a表記錄行數,則需要把查詢name欄位得到的多行記
199. mysql 將多行資料用逗號連線返回一個字串
1.需求 我們有時候會將多行資料進行合併顯示(Java 使用迴圈處理 有點麻煩 現在直接在sql中處理) 2.效果 3. 表結構 及sql 查詢 使用者角色中間表 角色表 表關係 --3. 我們需要 分組查詢 使用GROUP_CONCAT 函式
mysql帶條件的字串拼接,多行資料合併一行顯示,取前幾位
我原來通過group by 進行分組然後利用GROUP_CONCAT GROUP_CONCAT(s3.name) 獲取到了一串人名 現在要判斷如果裡面的人多餘三個就只顯示三個人其他用...號顯
多行資料合併成一行
需求:在大資料平臺maxcompute上統計各個等級對應的人數,欄位大致如下 CREATE TABLE `XXXX` ( `requestid` char(32) DEFAULT NULL, `id` char(32) NOT NULL, `createtime` varchar
Oracle 多行資料合併成一行
方案一:wm_concat函式 select username, id, wmsys.wm_concat(subject) as subject, wmsys.wm_concat(score) a
資料庫將多行資料合併為一行資料
先看資料庫: 假如我們執行這樣的語句 select * from sh_meetingservice where id in(1,2,3);結果如下會有多行 但是我們想要多行合併為一行,我們需要用到 for xml path select text+',' fr
一步一步學MySQL----15 多表資料記錄查詢之合併查詢
在MySQL中通過關鍵字 union來實現並操作,即可以通過 union將多個select語句查詢合併在一起組成新的關係。 下面的例項基於資料庫company,有如下兩張表: (1) 計算機系的學生表:cstudent (2) 音樂系的學生表:mstuden
一條sql插入多行資料mysql和oracle的不同寫法
轉載出處: 由於要將mysql資料庫轉為oracle,mybatis的對映檔案裡面的批量插入用的mysql的多個values的形式,但是換成oracle庫之後sql報錯。所以.oracle並不支援這種一個insert into 多個values的方法 mysql:INSE
oracle 如何將多行資料進行合併(用LISTAGG!!!)
LISTAGG(列名,' 分割符號') oracle 11g 以上的版本才有的一個將指定列名的多行查詢結果,用 指定的分割符號 合併成一行顯示: 例如: 表原始資料: 需求:將 mb1_Transport_License_list 表中的資料,根據 transpo
mysql逗號分隔字串成多行資料
最近迷上將夜,就用主角做栗子了。 轉換後: SQL程式碼 select substring_index(substring_index(a.userIds,',',b.help_topic_id+1),',',-1) id, substring_index(substring_i
postgresql 9.3 自定義聚合函式實現多行資料合併成一列
前言 常見的一種需求,如下圖(1): 目前需要按右邊的factor_code進行分組,將左邊的behavior_code這一列通過指定分隔符連線起來,比如通過<br /> 來連線,理想的效果應當是如下圖(2)這樣: 下面就來討論一下實現
Mysql將多條資料的某個欄位合併
sql語句將多條資料的某個欄位的多條資料合併為一個欄位 場景:簡歷標籤表中一條簡歷有多個標籤,將簡歷的多條標籤合併為一個欄位 使用sql的GROUP_CONCAT() 實現合併 SELECT GROUP_CONCAT(tag_code) AS tag_code,fk_resume
sqlserver中,如何把一列中的多行資料在一行顯示
SQL code問題描述: 無論是在sql 2000,還是在 sql 2005 中,都沒有提供字串的聚合函式, 所以,當我們在處理下列要求時,會比較麻煩: 有表tb, 如下: id value ----- ------ 1 aa 1 bb 2
oracle行變列(多行變成一行/多行合併成一行/多行合併成多列/合併行)
和mysql對比著看:http://blog.csdn.net/rainyspring4540/article/details/50231435 這裡是oracle10g的環境 資料庫結構如下: 如果我想將相同名字的成績顯示在同一行,有2中基本展示: 第一種展示(顯示在同
Oracle合併拼接多行資料
select wmsys.wm_concat(t.column) from tableName t; wmsys.wm_concat預設是用英文逗號‘,’拼接的,如果需要更換拼接符號,可以用replace函式將英文逗號替換成其它字元。 wmsys.wm_co
SQL Server中將多行資料拼接為一行資料(一個字串)
SELECT @Users = @Users + ‘,’ + UserName FROM dbo.[User] WHERE RoleID = 1 SELECT @Users 方法二:使用for xml path(”) 和stuff –使用 自連線、f
mysql 行列互換,列列互換資料,陣列列轉多行資料
1. 列變行,比較難,需要使用儲存過程,呼叫動態sql,使用mysql的系統表information_schema.`COLUMNS`。 2.行變列,比較簡單。 2.1 sum if SELECT cname AS "姓名", SUM(IF(cource=
mysql 一對多 查詢 出一行資料
select * from class; select * from student; class id name 1 三年二班
SQL將一列多行資料合併
SQL2005以上 用到兩個方法 stuff 和 for xml path stuff : stuff(param1, startIndex, length, param2) 說明:將param1中自startIndex(SQL中都是從1開始,而非0)起,刪除length
SQL多行並一行統計例子之STUFF()函數+FOR XML PATH()函數應用
color varchar char lec .project 應用 src http class SELECT * FROM tbiz_ProjectRelation 目標統計每個項目有幾條申請記錄 Step1 SELECT ProjectID ,