SQL Server同列字符串相加
来源:互联网 发布:三峡大学教务网络系统 编辑:程序博客网 时间:2024/05/01 05:18
有一张表test,数据如下:
column2 column1
3 43243
2 erew
1 gg
1 kk
1 jj
1 hh
这时我需要查询test中所有column2相等的column1列的字符相加的值。
既这样的结果:
3 43243
2 erew
1 gg,kk,jj,hh
sql语句该怎么写?
先来看看几个函数
1.stuff(str1,start,length,str2)
这个函数的含义是:往str1字符串里插入str2字符串,从start位置开始插入,同时从start位置开始,删掉str1中length个字符,这个start的值不能超过str1的长度范围,否则stuff函数返回null。
SELECT STUFF('abc', 1, 2, 'xyz')
结果:
xyzc
2.ltrim(str),rtrim(str)
这两个函数简单,ltrim去掉字符str的左边空格,rtrim去掉字符str的右边空格。
3.for xml path(str)
把查询的数据生成XML数据.
拿上面的test表为例:
select column1 from test where column2=1 for xml path
结果
如果给path加个参数
select column1 from test where column2=1 for xml path('root')
结果
如果把path的参数改为空字符
select column1 from test where column2=1 for xml path('')
结果
如果查询时不写列名会怎样?
select column2+'' from test where column2=1 for xml path('')
结果
ggkkjjhh
现在可以可以处理开始的问题了
select distinct column2,stuff((select ','+ltrim(column1) from test where column2=b.column2
for xml path('')),1,1,'') from test b
查询结果就是开始的那个结果。
- SQL Server同列字符串相加
- SQL同列字符串拼接
- 某列字符串相加计算的SQL语句的写法
- sqlserver 同列字符连接相加
- sql 字符串相加
- SQL SERVER 2008 同表同列做差
- SQL Server 2005合并列成字符串 2008-11-07
- Sql 同表同列一条sql显示所有组合
- SQL Server -identity列
- sql server 计算列
- sql server 列转行
- SQL Server 标识列
- sql server 列转行
- SQL Server 列转行
- Sql server增加列
- SQL Server计算列
- SQL列字符串拼接
- 小心SQL中的字符串相加变成NULL
- PHP中open_basedir配置分析
- 让CEdit控件SetSel后选中其中内容
- Windows Sockets API实现网络异步通讯
- Windows Sockets API实现网络异步通讯
- 20110505 Brew工程师培训笔记——第七章 开始开发一个BREW应用
- SQL Server同列字符串相加
- C++ 参考书
- [译]OOSE第8章:Construction 软件构建 8.2 The design model 设计模型
- Linux-2.6 内核软中断(softirq)执行分析
- synchronized关键字
- inux中的设备节点(/dev/*)
- 研究生答辩注意事项及技巧
- android.graphics包-核心渲染包(绘图)
- 怎样成为一个软件架构师续