SQL查詢語句 group by后, 字符串合并

合并列值 
--*******************************************************************************************
表結構,數據如下: 
id    value 
----- ------ 
   aa bb aaa bbb ccc 需要得到結果: 
id    values 
------ ----------- 
     aa,bb aaa,bbb,ccc 
即:group by id, 求 value 的和(字符串相加) 1. 舊的解決方法(在sql server 2000中只能用函數解決。) 
--=============================================================================
create table tb(id int, value varchar(10)) 
insert into tb values(1, 'aa') 
insert into tb values(1, 'bb') 
insert into tb values(2, 'aaa') 
insert into tb values(2, 'bbb') 
insert into tb values(2, 'ccc') 
go 
--1. 創建處理函數 
CREATE FUNCTION dbo.f_strUnite(@id int) 
RETURNS varchar(8000) 
AS 
BEGIN DECLARE @str varchar(8000) SET @str = '' SELECT @str = @str + ',' + value FROM tb WHERE id=@id RETURN STUFF(@str, 1, 1, '') 
END 
GO 
-- 調用函數 
SELECt id, value = dbo.f_strUnite(id) FROM tb GROUP BY id 
drop table tb 
drop function dbo.f_strUnite 
go
/* 
id          value      
----------- ----------- aa,bb aaa,bbb,ccc 
(所影響的行數為 2 行) 
*/ 
--===================================================================================
2. 新的解決方法(在sql server 2005中用OUTER APPLY等解決。) 
create table tb(id int, value varchar(10)) 
insert into tb values(1, 'aa') 
insert into tb values(1, 'bb') 
insert into tb values(2, 'aaa') 
insert into tb values(2, 'bbb') 
insert into tb values(2, 'ccc') 
go 
-- 查詢處理 
SELECT * FROM(SELECT DISTINCT id FROM tb)A OUTER APPLY( SELECT [values]= STUFF(REPLACE(REPLACE( ( SELECT value FROM tb N WHERE id = A.id FOR XML AUTO ), ' <N value="', ','), '"/>', ''), 1, 1, '') 
)N 
drop table tb /* 
id          values 
----------- ----------- aa,bb aaa,bbb,ccc (2 行受影響) 
*/ --SQL2005中的方法2 
create table tb(id int, value varchar(10)) 
insert into tb values(1, 'aa') 
insert into tb values(1, 'bb') 
insert into tb values(2, 'aaa') 
insert into tb values(2, 'bbb') 
insert into tb values(2, 'ccc') 
go select id, [values]=stuff((select ','+[value] from tb t where id=tb.id for xml path('')), 1, 1, '') 
from tb 
group by id /* 
id          values 
----------- -------------------- aa,bb aaa,bbb,ccc (2 row(s) affected) */

demo:

selectBeginCity,EndCity,FanDian,[CangWei]=stuff((select '/'+[CangWei] from test1 t  where t.BeginCity=Test1.BeginCity  and t.EndCity=Test1.EndCity  and t.FanDian=Test1.FanDian   for xml path('')), 1, 1, '') 
from  
Test1 
group by 
BeginCity,EndCity,FanDian

參考: ?http://bbs.csdn.net/topics/330188225

? ? ? ? ??http://bbs.csdn.net/topics/330182340

?

https://www.cnblogs.com/qixuejia/p/4241932.html

轉載于:https://www.cnblogs.com/GarsonZhang/p/10462933.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/536861.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/536861.shtml
英文地址,請注明出處:http://en.pswp.cn/news/536861.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Git 基礎 —— 常用命令

Git 基礎學習系列 Git 基礎 —— 安裝 配置 別名 對象Git 基礎 —— 常用命令Git 基礎 —— 常見使用場景Git基礎 —— Github 的使用git init 創建 Git 本地倉庫 遠端無倉庫&#xff0c;本地無倉庫&#xff0c;本地新建一個倉庫 git init git_learning 遠端有倉庫&#xff0c;…

python安裝caffe_Linux下caffe的安裝

下載caffe并保存到一個目錄下(推薦放到 /home 目錄)安裝依賴項&#xff1a;sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compilersudo apt-get install --no-install-recommends libboost-all-devsudo apt-…

linux 訪問Windows 共享文件的方法

2019獨角獸企業重金招聘Python工程師標準>>> 1 安裝Samba服務 2 啟動 samba服務 /etc/init.d/smb restart 3 安裝插件 cifs解決只讀掛載&#xff1a;yum install cifs-utils.x86_64 4 在windows下共享一個可以用的文件夾 5 將 windows 共享文件夾掛載到linux上 命令…

基于Blink構建親聽項目以及全鏈路debug項目實時響應能力

案例與解決方案匯總頁&#xff1a;阿里云實時計算產品案例&解決方案匯總 本文全面總結了大數據項目組在親聽項目以及全鏈路debug項目上進行的實時流處理需求梳理&#xff0c;架構選型&#xff0c;以及達成效果 一、背景介紹 1.1親聽項目 親聽項目專注于幫助用戶收集、展示、…

python的重點_python知識點

"""author:lei"""import os#os.path.join() 將分離的部分合成一個整體filenameos.path.join(/home/ubuntu/python_coding,split_func)print filename#輸出為&#xff1a;/home/ubuntu/python_coding/split_func#os.path.splitext()將文件名和擴展…

在既有系統中打通Apache Ignite、MySQL和Node.js

為什么80%的碼農都做不了架構師&#xff1f;>>> 介紹 在本系列的第一篇文章中&#xff0c;安裝了Node.js、Ignite的Node.js瘦客戶端包&#xff0c;并且測試了一個示例應用。在本文中&#xff0c;可以看一下Ignite在處理其它數據源&#xff08;比如關系數據庫&#…

java hashmap 的api_JAVA基礎--JAVA API集合框架(ArrayList、HashSet、HashMap使用)

一、集合Collection1. 集合介紹變量&#xff1a;表示的內存中的一個空間&#xff0c;只能保存確定類型的單個數據數組&#xff1a;表示的是內存中的多個連續的空間&#xff0c;這些空間中可以存儲多個同類型的數據。后期繼續學習面向對象技術&#xff0c;我們在程序中開始創建對…

Vue進階知識筆記

利用v-for循環出的多個li標簽&#xff0c;點擊不同的li變換顏色 方法一 <ul v-for"(item,index) in list" :key"index" class"details"><li ref"lisd" click"faillist(index)" :class"{active:ind index}&qu…

teamcity mysql 配置_CentOS 7 上 TeamCity 安裝

CentOS 7 上 TeamCity 安裝非入門教程, 初次接觸centos/docker的朋友需要謹慎一. 安裝 MySQL為了后續的需要, 這里安裝了 Docker, 當然如果你已經有了 MySQL 或者其它推薦的數據庫[MySQL, PostgreSQL, Oracle, MS SQL], 則可忽略1. 安裝 Docker補充:# 啟動dockersudo systemctl…

Python網絡請求庫Requests,媽媽再也不會擔心我的網絡請求了(二)

本文同步發表于我的微信公眾號&#xff0c;掃一掃文章底部的二維碼或在微信搜索 極客導航 即可關注&#xff0c;每個工作日都有文章更新。 一、概況 接著上篇說&#xff0c;如果你真以為Requests網絡請求庫只有Get請求和Post請求&#xff0c;那就大錯特錯了。它還一些其他用法&…

dbunit java_java - 錯誤地拋出了Java DBUnit AmbiguousTableNameException - 堆棧內存溢出

我正在嘗試DBUnit(2.6.0)&#xff0c;我正在嘗試導出我的完整數據庫(PostgreSQL)。 但是拋出以下異常&#xff1a;線程“main”中的異常org.dbunit.database.AmbiguousTableNameException&#xff1a;FLYWAY_SCHEMA_HISTORY這是正確的行為&#xff0c;因為我有兩個具有相同名稱…

Docker 命令詳解(run篇)

參考&#xff1a;https://www.cnblogs.com/yfalcon/p/9044246.html 命令格式&#xff1a;docker run [OPTIONS] IMAGE [COMMAND] [ARG...]Usage: Run a command in a new container中文意思為&#xff1a;通過run命令創建一個新的容器&#xff08;container&#xff09; 常用選…

java 同步 lock_關于java:同步是否像Lock.lock()一樣駐留并發線程?

當我們調用lock.lock()或嘗試輸入synchronized塊時&#xff0c;如果其他某個線程已經獲得了該鎖&#xff0c;則我們的線程將阻塞。 現在我的問題是&#xff0c;當我們查看lock.lock()的實現時&#xff0c;它會將獲取鎖委托給AQS&#xff0c;而AQS實際將當前線程駐留在該線程中(…

Idea項目中常見錯誤及筆記(Old)

1、Idea基礎設置&#xff1a; File-->settings--> 1>修改字體&#xff1a;Font 2>修改編碼格式&#xff1a;File Encodings(全部UTF-8,右下方復選框勾中--防止程序中的漢字轉為ASCII碼) 3>修改行號&#xff1a;Appearance&#xff1a;show line numbers show me…

java接口服務編排_GOKU API Gateway CE V3.1.0 發布:新增服務編排、配置版本管理等...

Goku API Gateway (中文名&#xff1a;悟空 API 網關)是一個基于 Golang 開發的微服務網關&#xff0c;能夠實現高性能 HTTP API 轉發、服務編排、多租戶管理、API 訪問權限控制等目的&#xff0c;擁有強大的自定義插件系統可以自行擴展&#xff0c;并且提供友好的圖形化配置界…

maxcompute 2.0復雜數據類型之array

2019獨角獸企業重金招聘Python工程師標準>>> 1. 含義 類似于Java中的array。有序、可重復。 2. 場景 什么樣的數據&#xff0c;適合使用array類型來存儲呢&#xff1f;這里列舉了幾個我在開發中實際用到的場景。 2.1 標簽類的數據 為什么說標簽類數據適合使用array類…

java中匿名數組_Swagger UI:數組中的多個匿名對象

對象數組的定義如下&#xff1a;type: arrayitems:type: objectproperties:prop1:type: stringprop2:type: integer# etc.在您的示例中&#xff0c;響應包含具有屬性 balanceDisplaySettings 的對象&#xff0c;并且此屬性包含對象數組 . 這可以定義如下&#xff1a;paths:/Pat…

java ioutils 寫入文件_文件輸入輸出流工具: IOUtils使用總結

序言以前寫文件的復制很麻煩&#xff0c;需要各種輸入流&#xff0c;然后讀取line&#xff0c;輸出到輸出流...其實apache.commons.io里面提供了輸入流輸出流的常用工具方法&#xff0c;非常方便。下面就結合源碼&#xff0c;看看IOUTils都有什么用處吧&#xff01;常用的靜態變…

權限組件(6):權限分配的角色管理

效果圖&#xff1a; 為了方便開發&#xff0c;先把中間件注釋掉&#xff0c;要不還要在角色-權限表中添加對應關系。又因為二級菜單和面包屑導航需要中間件的變量&#xff0c;所以要在layout.html里面把這兩個也注釋掉。setting.py# rbac.middlewares.rbac.RbacMiddleware layo…

java 面試700問_JAVA面試700問(一)

1、Java環境中的字節碼是什么&#xff1f;由Java 編譯器生成的一種代碼。由JVM生成的一種代碼。Java源文件(Java Source File)的別名。一種寫在類的實例方法中的代碼。答案&#xff1a;由Java 編譯器生成的一種代碼。2、什么是Java垃圾回收機制&#xff1f;操作系統周期性的刪除…