SQLServer拆分字符串的三种方法

2016-02-19 16:03 39 1 收藏

有一种朋友不在生活里,却在生命力;有一种陪伴不在身边,却在心间。图老师即在大家的生活中又在身边。这么贴心的服务你感受到了吗?话不多说下面就和大家分享SQLServer拆分字符串的三种方法吧。

【 tulaoshi.com - 编程语言 】

  use tempdb

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  go

  --测试数据

declare @s varchar(1000)
set @s='ak47,mp5,1,23'

  /*要求输出结果

S
----
ak47
mp5
1
23
*/

  --3种方法对比:

  --1.[朴实]动态Exec方法:

declare @s1 varchar(1000)
set @s1=right(replace(','+@s,',',''' as S union select '''),len(replace(','+@s,',',''' as S union select '''))-12)+''''
exec(@s1)

  --2.[变通]表交叉方法:

select replace(reverse((left(s,charindex(',',s)))),',','') as S from(
select r,reverse(left(@s,r))+',' as s
from(
select  (select count(*) from sysobjects where name=t.name ) as r
from sysobjects t 
 )a where r=len(@s)
and left(@s+',',r+1) like '%,'
)t order by r

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  --3.[高级]XML方法:

DECLARE @idoc int;
DECLARE @doc xml;
set @doc=cast('RootitemS'+replace(@s,',','/S/itemitemS')+'/S/item/Root' as xml)
EXEC sp_xml_preparedocument @Idoc OUTPUT, @doc
SELECT *  FROM OPENXML (@Idoc, '/Root/item',2)
  WITH (
      [S] varchar(10)
     )

来源:http://www.tulaoshi.com/n/20160219/1610979.html

延伸阅读
create or replace procedure ModifyLadingItemPack (   ASoditemguid varchar2,                  --合同电子仓单明细GUID   ALadingitemGUID varchar2,             &nb...
Delphi中的字符串 ——摘自网络 一:各种字符串  字符串是Object Pascal所有数据类型中最有用的类型。许多函数以字符串为传递参数。由于在Delphi中字符串的定义和使用有各种方式,包括Pascal中典型的字符串(String),Delphi支持的长字符串(ANSIString),类似于C语言的字符数组(Array of Char),指向字符的...
标签: MySQL mysql数据库
  对于针对字符串位置的操作,第一个位置被标记为1。 ASCII(str) 返回字符串 str 的最左面字符的ASCII代码值。 如果 str 是空字符串,返回 0 。如果 str 是 NULL ,返回 NULL 。 mysql select ASCII('2'); - 50mysql select ASCII(2); - 50mysql select ASCII('dx'); - 100 也可参见ORD()函...
答:import java.util.*; class test { public static void main(String[] args) { String str1="001,002,003,004,006",str2 = "001,002,005"; String str=""; TreeSet ts = new TreeSet(); StringTokenizer st = new StringTokenizer(str1,","); while (st.hasMoreTokens()) { ts.add(st.nextToken()); } st = new StringToken...
标签: Web开发
第一种:逐个字符串相加 var arr = ['item 1', 'item 2', 'item 3', ...], list = ''; or (var i = 0, l = arr.length; i l; i++) { list += 'li' + arr[i] + ''; } list = 'ul' + list + '/ul'; 这种最常见的,但是效率最低!代码逻辑相对来说复杂。 第二种:逐个 push 进数组 var arr = ['item 1', 'item 2', 'item 3', ......

经验教程

212

收藏

78
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部