`
ihuashao
  • 浏览: 4745089 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

SQL 字符合并函数 字符拆分函数

阅读更多

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字符串拆分函数

    SQL字符串拆分函数,可拆分任何格式的字符串,只需传入待拆分字符串及拆分参数即可

    Sql Server数据库中自定义拆分字符串函数Split()

    Sql Server数据库中自定义拆分字符串函数Split()

    sqlserver中根据某个字符切割字符串函数

    sqlserver中根据某个字符切割字符串函数,比如根据逗号切割字符串,结果返回的是一个表值函数,这个函数返回结果字段包含Id和Value,Id为序号,Value为切割后的值

    Oracle拆分字符串,字符串分割的函数

    如果内置函数无法满足需求,可以创建自定义PL/SQL函数来实现特定的字符串拆分逻辑。 7. **示例应用** 例如,我们有一个以逗号分隔的字符串,如"apple,banana,orange",我们可以使用`instr()` 和 `substr()` 结合...

    Sql拆分字符串

    #### SQL字符串拆分背景介绍 在实际业务场景中,我们经常会遇到需要将一个包含多个值的字符串拆分成多个独立的数据项的情况。比如,一个字段存储了以逗号分隔的商品ID列表,为了方便后续处理,我们需要将其拆分成...

    SQL字符串按殊字符串拆分.zip

    内置的`STRING_SPLIT`函数是SQL Server 2016引入的,用于按分隔符拆分字符串,但这个函数可能无法满足所有特殊字符拆分需求,例如,它不支持正则表达式。在这种情况下,开发者可能会创建自定义函数,如`...

    SQL拆分字符串.sql

    创建函数,拆分字符串

    db2字符串分隔,函数,过程的使用

    在处理字符串时,DB2提供了多种函数和过程,使得对字符串的分隔、提取和操作变得方便高效。以下将详细介绍DB2中用于字符串分隔、函数及过程的使用。 1. 字符串分隔函数: 在DB2中,最常用的字符串分隔函数是`STRIP...

    字符串分割自定义函数(sql)

    ### 字符串分割自定义函数(SQL) 在数据库操作过程中,我们经常会遇到需要处理字符串的情况,尤其是在没有内置数组数据类型的情况下,对字符串进行分割并转换为表格式的数据就显得尤为重要。本文将详细介绍一个...

    sql2000字符串分割,字符串拆分

    本文将详细介绍如何使用SQL Server 2000中的T-SQL语言实现字符串的拆分功能,并提供具体的代码示例。 #### 标题解读:“sql2000字符串分割,字符串拆分” 此标题指明了文章的主要内容是关于如何在SQL Server 2000...

    收集整理的SQL Server自定义函数

    收集整理的SQL Server自定义函数,原文地址:http://blog.csdn.net/maco_wang ...35.SQL2000/2005字符串拆分为列表通用函数 67 36.求字符串中汉字的个数 69 37.根据年月得到当月的天数 71 38.全角半角转换函数 71

    SQLServer逗号分隔的字符串转换成表

    2. 利用 SQL Server 函数进行字符串拆分:可以使用 SQL Server 的字符串函数,例如 CHARINDEX、LEFT、RIGHT、LEN 等函数对字符串进行拆分。 3. 将拆分后的数据写入到临时表中:将拆分后的数据写入到第 1 步中创建的...

    SQL 语句 将一个表中用特殊字符分割的字段转换成多行数据.docx

    SQL 字符串分割函数实现多行数据转换 在数据库中,经常会遇到将一个字段中的特殊字符分割的字符串转换成多行数据的情况。这是一个常见的需求,但是网上提供的解决方案往往非常复杂,难以理解和实现。为了解决这个...

    sqlserver2008 拆分字符串

    在SQL Server 2008中,没有内置的函数可以直接处理这种字符串拆分,但可以通过一些技巧实现。下面是一个可能的解决方案: ```sql -- 创建临时表存储原始数据 CREATE TABLE ta ( id INT, id_value VARCHAR(30) ); ...

    oracle分隔字符串函数

    为了实现这一功能,我们将采用 Oracle PL/SQL 的自定义类型和函数来完成字符串的分隔。这种方法可以有效地处理大量数据,并且具有良好的性能。 #### 四、代码实现 下面的代码展示了如何创建一个用于分隔字符串的...

    SQL Server字符串切割函数

    在SQL Server中,字符串处理是常见的任务之一,而字符串切割函数则是处理字符串的重要工具。本文将深入探讨SQL Server中的字符串切割函数,特别是如何创建和使用用户定义函数来实现这一功能。 首先,我们要明白用户...

    SQL实现字符串拆分2函数:splitstr,GetCharItem

    --用法 select * from dbo.splitstr('a,b,c,d,e') --返回表格 a b c d e --用处 select * from tbtable where ZID in (select ZValue from dbo.splitstr('a,b,c,d,e')) ...select dbo.GetCharItem('A,B,C,DE,F,GH',',',...

    sqlserver 字符串分割、包含、匹配

    2、按指定符号分割字符串,返回“分割后指定索引的第几个元素”的值,象数组一样方便 3、检查一个元素是否在数组中,返回1或0 4、检查一个元素是否与数组中的相匹配,并返回相匹配的数组的值。参数值为0表示全模糊...

    截取用,分割的字符串中的第n个字符串 SQL

    根据给定的信息,本文将详细解释如何在SQL中实现截取用特定字符分割的字符串中的第n个子字符串。此需求通常应用于数据处理与分析场景中,尤其在处理半结构化或非结构化的文本数据时非常有用。 ### 核心知识点解析 ...

Global site tag (gtag.js) - Google Analytics