当前位置:  数据库>sqlserver

把数据库中同一列的字符串连接起来的方法介绍

    来源: 互联网  发布时间:2014-08-29

    本文导语:  接到一个这样的变态要求:把数据库中同一列的字符串都连接起来。 在sql server中,如果是数值的话,可以用sum来实现,但是字符串的话如何实现呢? 要实现功能的示意图: 方法一:   代码如下: /** 构造用于查询的数据 *...

接到一个这样的变态要求:把数据库中同一列的字符串都连接起来。
在sql server中,如果是数值的话,可以用sum来实现,但是字符串的话如何实现呢?

要实现功能的示意图:

方法一:
 

代码如下:

/**
构造用于查询的数据
*/
create table ym
(col1 int, col2 int, col3 varchar(3))
 
insert into ym
select 1, 1, 'A' union all
select 1, 1, 'B' union all
select 1, 2, 'C' union all
select 1, 3, 'D' union all
select 1, 3, 'E'

---查询语句
select a.col1,a.col2,
stuff((select ','+col3 from ym b 
       where b.col1=a.col1 and b.col2=a.col2 
       for xml path('')),1,1,'') 'col3'
from ym a
group by  a.col1,a.col2

/*
col1        col2        col3
----------- ----------- ----------
1           1           A,B
1           2           C
1           3           D,E

(3 行受影响)

*/

方法二:
 

代码如下:

--构造用于查询的语句
create table ym (col3 varchar(3))   
insert into ym(col3)
 select 'A' union all
 select 'B' union all
 select 'C' union all
 select 'D'

-- 方法1
declare @r varchar(600)
select @r=isnull(@r,'')+col3 from ym
select @r '结果'

/*
结果
-----------------------
ABCD
(1 row(s) affected)
*/

-- 方法2
select cast(
(select ''+col3 from ym for xml path('')) as varchar(600)) '结果'

/*
结果
-----------------------
ABCD
(1 row(s) affected)
*/

参考方法三:
 

代码如下:

----------------------------------
-- Author  :DBA_Huangzj(發糞塗牆)
-- Date    :2013-02-17 16:30:53
-- Version:
--      Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64)
-- Jun 17 2011 00:54:03
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition (64-bit) on Windows NT 6.1 (Build 7601: Service Pack 1, v.721)
--
--------------------------------------
--> 测试数据:[huang]
if object_id('[huang]') is not null drop table [huang]
go
create table [huang]([id] int,[title] varchar(4))
insert [huang]
select 1,'测试' union all
select 2,'连接' union all
select 3,'字符'
--------------开始查询--------------------------
SELECT * FROM huang

SELECT DISTINCT
        STUFF(( SELECT  '' + title
                FROM    [huang] b
              FOR
                XML PATH('')
              ), 1, 1, '') 'title'
FROM    [huang]
----------------结果----------------------------
/*
id          title
----------- -----
1           测试
2           连接
3           字符

(3 行受影响)

title
-----------------------------
试连接字符

(1 行受影响)
*/

参考方法四:
 

代码如下:

----------------------------------------------------------------
-- Author  :磊仔
-- Date    :2013-02-17 16:48:12
-- Version: 
--      Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (Intel X86)  
-- Jun 28 2012 08:42:37  
-- Copyright (c) Microsoft Corporation 
-- Enterprise Edition on Windows NT 6.1 (Build 7600: ) 
--
----------------------------------------------------------------
--> 测试数据:#TA
if object_id('tempdb.dbo.#TA') is not null drop table #TA
go
create table #TA([id] int,[title] varchar(4))
insert #TA
select 1,'测试' union all
select 2,'连接' union all
select 3,'字符'
--------------开始查询--------------------------

--select * from #TA
SELECT 1 id, (select ''+ title from #TA b 
       for xml path('')) title
----------------结果----------------------------
/*  
id          title
----------- --
1           测试连接字符

(1 行受影响)
*/


    
 
 

您可能感兴趣的文章:

  • mysql查询字符串替换语句小结(数据库字符串替换)
  • 向Oracle数据库的CLOB属性插入数据报字符串过长错误
  • 请问数据库的链接字符串怎么写?
  • 请问,去会字符串型的日期,如何转化成datetime型从而写入数据库?如果不转换,能写入吗?(多谢)?
  • JSP查询数据库后返回结果为十六进制字符串,谁遇到过,怎么解决(送24分)?
  • php将字符串转化成date存入数据库的两种方式
  • 奇怪!奇怪!我用jbuilder编jsp程序,从数据库中取出的字符串型字段却显示16进制数
  • sqlserver,sqlite,access数据库链接字符串整理
  • C#连接Excel2003和Excel2007以上版本做数据库的连接字符串
  • 在更新数据库时中有没有现成的方法实现字符串的转义?
  • sqlserver replace函数 批量替换数据库中指定字段内指定字符串参考方法
  • 将数据库中保存的字符串中的回车换行转换为网页上的环行符(<br>) 急用,谢谢
  • sql server 2012 数据库所有表里查找某字符串的方法
  • sqlserver 数据库连接字符串中的可选项收集
  • C# 连接SQL数据库的方法及常用连接字符串
  • SQL Server 2005 数据库连接字符串大全
  • 深入分析C#连接Oracle数据库的连接字符串详解
  • mysql修改数据库编码(数据库字符集)和表的字符编码的方法
  • 有谁知道怎样向数据库写长字符变量???
  • mysql字符集和数据库引擎修改方法分享
  • 痛苦啊,按照书上的方法,在将数据存入数据库前,将数据转为“iso-8859-1”字符集的字符,为什么存入后还是乱码
  • 访问SQL server 2000数据库时显示字符不正确?100分,在线付分。
  • 烦人:用Java操纵mySQL数据库时的中文字符处理。
  • 兄弟姐妹们帮帮忙,如何将一个字符数据写入数据库,急急急急急急急 在线等待
  • jsp存入数据库中文字符变为乱码,怎么处理?谢先了!
  • Oracle数据库中的字符处理技巧总结
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • php中内置的mysql数据库连接驱动mysqlnd简介及mysqlnd的配置安装方式
  • java数据库连接池和数据库连接示例
  • mysql jdbc连接mysql数据库步骤及常见参数详解
  • 通过JDBC连接数据库,执行抄作后,关闭了连接,数据服务器端的进程还在,怎麽处理?
  • 请问连接本机数据库的JDBC,和连接远程的JDBC有没有区别?
  • 在jbuilder中调用一bean连接数据库没有问题,在jsp中调用就连接不上数据库
  • 大家有多少web application是直接连接数据库的?又有多少是通过weblogic或websphere之类连接的?
  • 紧急求助,我的程序连接数据库时,用localhost完全正常,而外部可以访问,但不能访问连接数据的那部分
  • 在linux下可以使用dao方式连接数据库吗?可以连接musql吗?回答就给分!急
  • linux 下连接创建连接数据库程序,什么都可以 。谁知道300分
  • 一个方法中,用Connection con变量连接数据库,执行完sql以后,关闭con,返回resultset,报错“关闭的连接: next”
  • JSP连接MySql/MS SQL Server/Oracle数据库连接方法[整理]
  • 如何建立一个连接数据库的应用?例如连接access、和sql sever.
  • NaviCat连接时提示"不支持远程连接的MySql数据库"解决方法
  • Linux 下的C语言实现数据库连接池操作。
  • 请教,TOMCAT4中连接池怎样应用?数据库厂商连接池又如何应用?
  • 数据库连接的问题
  • 关于使用数据库连接的问题。
  • 用JDBC连接Oracle数据库时,如何向数据库中写日期型数据(格式)?谢了!
  • applet连接数库时,不同的htm格式导致无法连接数据库?兄弟们帮忙看一下
  • oracle 数据库连接分析
  • 基于Key-Value的NOSQL数据库Redis的数据结构及常用相关命令介绍
  • 如何监控数据库的数据,如果数据库数据更改,就通知Server
  • SQL Server 2008如何进行数据库分离和附加详细介绍
  • 散分:Jbuilder6开发数据库应用请问你们都用什么数据库? 免费的数据库有那些?
  • 文档数据库mongodb与列式数据库hbase详细比较
  • 如何从数据库中或文本文件中提取数据到另一个数据库中?
  • nosql数据库levedb介绍及levedb最新版1.18下载安装
  • 开发java下的数据库程序,用什么数据库引擎?
  • sqlserver iis7站长之家
  • 我从JSP页将数据插入到oracle数据库中,为何汉字插入后数据库中显示为乱码呢?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3