IT忍者神龟之中的一个句sql语句——连接同一字段的全部值
Oracle能够用SYS_CONNECT_BY_PATH字符串聚合函数:
SELECT LTRIM(MAX(SYS_CONNECT_BY_PATH(productname, ', ')), ', ') AS productname
FROM(
SELECT '1' as id, productname,
ROW_NUMBER() OVER (PARTITION BY '1' ORDER BY productname) AS curr,
ROW_NUMBER() OVER (PARTITION BY '1' ORDER BY productname) -1 AS prev
FROM products
-- where 条件
order by productname
)
START WITH curr = 1
CONNECT BY prev = PRIOR curr AND id = PRIOR id
GROUP BY id 但MS SQL 2000没有这样的函数,但能够通过自己定义函数或过程来实现.
-- drop function ConnectString
Create FUNCTION ConnectString( @name varchar(20) )
RETURNS varchar(1024)
AS
BEGIN
declare @Str varchar(1024)
set @Str = ''
select @Str = @Str + (case when @Str = '' then '' else ',' end) + [productname] from products
--where [productname] = @name
return @Str
END
GO -- 调用
select DISTINCT dbo.ConnectString(productname) from products SQL Server 2005 可用OUTER APPLY:
下面是从网上摘录的:
-- 演示样例数据
DECLARE @t TABLE(id int, value varchar(10))
INSERT @t SELECT 1, 'aa'
UNION ALL SELECT 1, 'bb'
UNION ALL SELECT 2, 'aaa'
UNION ALL SELECT 2, 'bbb'
UNION ALL SELECT 2, 'ccc' -- 查询处理
SELECT *
FROM(
SELECT DISTINCT
id
FROM @t
)A
OUTER APPLY(
SELECT
[values]= STUFF(REPLACE(REPLACE(
(
SELECT value FROM @t N
WHERE id = A.id
FOR XML AUTO
), '<N value="', ','), '"/>', ''), 1, 1, '')
)N /*--结果
id values
----------- ----------------
1 aa,bb
2 aaa,bbb,ccc
(2 行受影响)
--*/
2 Admin/ adminY/ 刘超楠/ 张伟如/ 单慧慧/
3 王亦平/ 靳麟/ 杨婧/ 运营管理部资产管理员/ 刘婷/ 钟媛/ 杜佳凝/
4 分行营业部电脑管理员A角/ 分行营业部电脑管理员B角/ 张婷婷/ 反洗钱301/ 信贷综合301/ 陈光/ 蒋喆/ 安静/ 个贷接单301/ 单立伟/ 孙晴/ 分行营业部资产管理员/ 方正/ 李晨/ 营业部企划联系人/ 李燚/
5 李娟/ 神华支行电脑管理员A角/ 神华支行电脑管理员B角/ 王国萍/ 反洗钱302/ 信贷综合302/ 张喆/ 周小舟/ 个贷接单302/ 王兆圆/ 神华支行资产管理员/ 杨厚玮/ 神华企划联系人/
6 安华支行电脑管理员A角/ 安华支行电脑管理员B角/ 魏红/ 反洗钱303/ 信贷综合303/ 陈盈/ 许越昆/ 陈醒/ 宛霞/ 个贷接单303/ 花园路支行资产管理员/ 乔曦/ 程瑶/ 花园路企划联系人/
7 西三环支行电脑管理员B角/ 西三环支行电脑管理员A角/ 张永风/ 反洗钱304/ 信贷综合304/ 邓立/ 个贷接单304/ 张纪洪/ 龚鑫/ 李冬冬(304)/ 崔佳/ 西三环支行资产管理员/ 周琪/ 李菲/ 西三环企划联系人/ 张鑫/
8 董钧玉/ 中关村支行电脑管理员B角/ 中关村支行电脑管理员A角/ 李鑫/ 反洗钱305/ 信贷综合305/ 个贷接单305/ 徐文文/ 旦蕊/ 中关村支行资产管理员/ 贾晋平/ 张莹01/ 车帅/ 中关村企划联系人/
IT忍者神龟之中的一个句sql语句——连接同一字段的全部值的更多相关文章
- 使用ODP.NET一次执行多句SQL语句
在实际开发的时候有的时候希望一次执行多句SQL语句,又不想使用Transcation的话,可以直接将多句SQL语句拼接起来.例如: var sql = "Begin " + &qu ...
- 用一句sql语句更新两个表并可更新对应的字段的值
ACCESS 例子: insert into products (ProNumber,CASNumber,Cnname,Price,Enname,Baozhuang,Pinpai) select Pr ...
- 我和小美的撸码日记(3)之中的一个句话搞定MVC表单页数据绑定与提交
另外献上在<线体验Demo地址>希望大家也能从中得到一些启示. 地址:http://121.40.148.178:8080/ . username:guest,password:12345 ...
- tp5中很牛皮的一句sql语句,三个条件(两个不确定条件,一个硬性条件)
$result = Db::table('xxxxxx') // 表名 ->alias('g') ->join('xxxxx_2 u','g.user_id = u.id') -> ...
- select count(1) from table where ..这句sql语句的作用
作用是计算一共有多少符合条件的行.1并不是表示第一个字段,而是表示一个固定值,count(1)和count(2)效果是一样的 count(*),执行时会把星号翻译成字段的具体名字,效果也是一样的,不过 ...
- Mysql Sql语句令某字段值等于原值加上一个字符串
MySQL连贯字符串不能利用加号(+),而利用concat. 比方在aa表的name字段前加字符'x',利用: update aa set name=concat('x',name); 替换: UPD ...
- 写sql语句连接的时候注意的一个小细节
我在写权限的查询的时候,用到了sql语句的链接写一下出错的时候的代码 $sqlpid="select auth_name from sw_auth where auth_level=0&qu ...
- 同样的一句SQL语句在pl/sql 代码块中count 没有数据,但是直接用SQl 执行却可以count 得到结果
pl/sql 代码块: SELECT count(distinct t2.so_nbr) INTO v_count2 FROM KFGL_YW_STEP_qd t2 WHERE t2.partitio ...
- 一个表的两个列连接另外一个表的一个列SQL语句怎么写
f619424517 | 浏览 2207 次 推荐于2016-09-09 11:38:18 最佳答案 select a.flightid,a.flightname,b.cityname,c.c ...
随机推荐
- vim常用操作技巧与配置
vi是linux与unix下的常用文本编辑器,其运行稳定,使用方便,本文将分两部分对其常用操作技巧和配置进行阐述,其中参考了网上的一些文章,对作者表示感谢 PART1 操作技巧 说明: 以下的例子中 ...
- Java, C#, Swift语法对比速查表
原文:Java, C#, Swift语法对比速查表 Java 8 C# 6 Swift 变量 类型 变量名; 类型 变量名; var 变量名 : 类型; 变量(类型推断) N/A var 变量名= ...
- ASP.NET MVC 5 学习教程:添加控制器
原文 ASP.NET MVC 5 学习教程:添加控制器 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符串 通过 ...
- 基于visual Studio2013解决C语言竞赛题之0422牛顿迭代法
题目
- [置顶] 图书推荐:SQL Server 2012 T-SQL基础 Itzik Ben-Gan
经过近三个月的不懈努力,终于翻译完毕了.图书虽然是基础知识,但是,即使你已经使用T-SQL几年,很多地方还是能够弥补你的知识空白.大师级的人物写基础知识,或许你想知道这基础中还有哪些深奥,敬请期待吧. ...
- MongoDB 操作手冊CRUD查询指针
枚举遍历指针 概述 前面已经讲过,db.collection.find()假设没有指定给一个var声明的变量.将自己主动枚举前20条记录. 手动枚举指针 在mongo控制台中.将查询赋给一个var声明 ...
- svn: keywords
在文件头里面加入下面的关键字: $Date$ $ID$ $Revision$ $Author$ 代码在svn提交时,先选中这几个关键字再提交. Date可能出现中文乱码: 在Control Panel ...
- java--方法和成员的继承,访问
//在调用方法的时候,不是看句柄是哪一个类,而应该看对象是属于哪一个类的,属于哪一个类的,就调用哪一个类的成员和方法. //子类可以添加自己的新方法,但是子类对象的引用赋值给父类句柄之后,不能使用父类 ...
- 在mac os 中安装 autoconf and automake
转载地址:http://www.mattvsworld.com/blog/2010/02/install-the-latest-autoconf-and-automake-on-mac-os-10-6 ...
- 在程序中,你敢怎样使用“goto”语句!
用goto是一个个人爱好的问题.“我”的意见是,十个goto中有九个可以用相应的结构化结构来替换.在那些简单情形下,你可以完全替换掉goto,在复杂的情况下,十个中也有九个可以不用:你可以把部分代码写 ...