通过Sql实现根据分组合并指定列内容的查询
来源:互联网 发布:怎么求逆矩阵 编辑:程序博客网 时间:2024/06/10 23:07
问题:
最近在做一个项目的时候,遇到这样一个要求,模拟要求如下:
<pre name="code" class="html">
<pre name="code" class="sql">ID SName 张三 李四 刘六 王五要的结果是ID name 张三,李四 刘六,王五即按ID组查询,并将相同的ID对应SName内容通过逗号合并
解决思路:
通过传递不同的id给函数,查询出组合的SName并返回。
--创建测试表IF NOT EXISTS(SELECT * FROM sysobjects WHERE id=OBJECT_ID(N'StudentsInfo') AND OBJECTPROPERTY(id,N'IsUserTable')=1)CREATE TABLE StudentsInfo( Id INT, SName NVARCHAR(20))GO--添加测试数据INSERT INTO StudentsInfo VALUES (1,'张三')INSERT INTO StudentsInfo VALUES (1,'李四')INSERT INTO StudentsInfo VALUES (2,'刘六')INSERT INTO StudentsInfo VALUES (2,'王五')GO--创建函数IF EXISTS(SELECT * FROM sysobjects WHERE id=OBJECT_ID(N'GetStudentsInfoNamesByID') AND OBJECTPROPERTY(id,N'IsScalarFunction')=1) DROP FUNCTION GetStudentsInfoNamesByIDGOCREATE FUNCTION GetStudentsInfoNamesByID(@Id INT) RETURNS NVARCHAR(4000)ASBEGIN DECLARE @SNames NVARCHAR(4000) SET @SNames = '' SELECT @SNames = @SNames+','+SName FROM StudentsInfo WHERE id = @Id RETURN STUFF(@SNames,1,1,'')ENDGO --查询SELECT id,dbo.GetStudentsInfoNamesByID(id) AS SNames FROM StudentsInfo GROUP BY id
0 0
- 通过Sql实现根据分组合并指定列内容的查询
- 通过Sql实现根据分组合并指定列内容的查询
- jquery 合并相同内容的单元格,根据某列可以指定合并后面的任意列
- 分组合并列内容
- SQL 列内容合并
- 根据参数指定的列名和值查询员工信息(使用动态sql语句)
- SQL列合并的查询问题
- 查询语句块范例 SQL 根据分组列 拼接其他列数据
- xutils3 数据库操作,根据指定的columns列查询数据
- SQL根据某个字段分组查询:
- Sql ,sqlserver根据一个字段分组查询
- SQL 根据时间戳分组查询
- 将多条sql根据表名合并成多值sql的正规表达式分组应用
- SQL 列不同的表查询结果合并
- 根据查询列名生成SQL的几个Perl代码
- 根据列名查询表名的sql语句
- MS-sql实现分组查询
- sql查询指定列超过一定条数的记录
- GRE写作必备句型
- Network:socket+线程
- spring3整合quartz2,实现动态添加、修改、暂停、重启定时任务
- imshow 显示图像 出现全部白色
- [LeetCode]Substring with Concatenation of All Worlds(渣算法)_TBC
- 通过Sql实现根据分组合并指定列内容的查询
- [Android中级]使用Commons-net-ftp来实现FTP上传、下载的功能
- js异步获取数据的问题
- Android应用Activity、Dialog、PopWindow、Toast窗口添加机制及源码分析 《五》-Toast
- nginx + lua 白名单机制
- Spark代码总结(1)
- Android高手进阶教程(四)之----Android 中自定义属性(attr.xml,TypedArray)的使用!
- Java中判断字符串是否为数字的五种方法
- 《Windows核心编程》---Windows服务