SQL字符合并函数、字符拆分函数
来源:互联网 发布:qsv格式转换 mac 编辑:程序博客网 时间:2024/05/17 03:40
create table tb (a varchar(10),b varchar(10))
insert tb
select '2009', 'AA' union all
select '2009', 'BB' union all
select '2008', 'CC' union all
select '2007', 'XX' union all
select '2009', 'HH' union all
select '2008', 'DD' union all
select '2007', 'SS' union all
select '2006', 'GG'
go
select * from tb
CREATE FUNCTION dbo.f_str(@col1 varchar(10))
RETURNS varchar(100)
AS
BEGIN
DECLARE @re varchar(100)
SET @re=''
SELECT @re=@re+','+CAST(b as varchar)
FROM tb
WHERE a=@col1
RETURN(STUFF(@re,1,1,''))
END
GO
select a,dbo.f_str(a)[b] from tb group by a
a b
---------- -------------------
2006 GG
2007 XX,SS
2008 CC,DD
2009 AA,BB,HH
(所影响的行数为 4 行)
拆分:
IF OBJECT_ID('tb') IS NOT NULL
DROP TABLE tb
GO
CREATE TABLE tb (id INT,col VARCHAR(30))
INSERT INTO tb VALUES (1,'aa,bb')
INSERT INTO tb VALUES (2,'aaa,bbb,ccc')
go
--1.2000/2005通用方法
SELECT
a.id,
col=SUBSTRING(a.col,number,CHARINDEX(',',a.col+',',number)-b.number)
FROM tb a
JOIN master..spt_values b
ON b.type='p'
--AND SUBSTRING(','+a.col,b.number,1)=',' --用此条件或下面的条件均可
AND CHARINDEX(',',','+a.col,number)=number
--2.2005以上新方法:
SELECT a.id,b.col
FROM (SELECT id,col=CAST('<v>'+REPLACE(col,',','</v><v>')+'</v>' AS xml) FROM tb) a
OUTER APPLY (SELECT col=T.C.value('.','varchar(50)') FROM a.col.nodes('/v') AS T(C)) b
--结果:
/*
id col
----------- --------------------------------------------------
1 aa
1 bb
2 aaa
2 bbb
2 ccc
(5 行受影响)
*/
- SQL字符合并函数、字符拆分函数
- Oracle字符拆分函数
- 拆分字符窜函数
- sql server 函数根据分隔符号拆分字符
- SQL常用字符函数
- SQL常用字符函数
- SQL常用函数--字符函数
- SQL 字符拆分
- C++ 字符串拆分函数: split() 替换字符函数: replaceAll()
- SQL单行函数-字符函数、数字函数
- T-sql字符处理函数
- Sql 字符處理函数
- sql智能分割字符函数
- Sql 分隔字符创函数
- sql 字符替换函数 replace
- sql字符转换函数大全
- sql字符转换函数大全
- 拆分字符进行sql查询
- Node.js入门
- Android文件下载
- signed unsigned 的数值概念
- SQL多表连接查询(详细实例)
- 读:网络转播概论.后感
- SQL字符合并函数、字符拆分函数
- ubuntu下vim的一些设置
- UBOOT添加命令的执行流程
- 一个fork的面试题
- heap——sort
- android--设置TextView部分文字的颜色和背景(高亮显示)
- myEclipse 快捷键
- 看了一个下午的linux基本操作
- SQL处理重复记录