今天要在mssql里处理一串Email地址。以分号分开的。以前自己写过一个split函数的。这次想使用xml来处理。

mssql 2000和mssql 2005数据库对xml的支持有些不同。至少mssql 2005的功能多些。

代码一:
这个代码在MSSQL 2005测试成功, 在mssql 2000不通过。最后生成一个表变量。使用者可以把表变量转成需要的数据

--定义一个拿来测试的字串declare @cc varchar(1000)set @cc = 'hello@163.com;world@hotmail.com;iloveyou@yahoo.com'--定义一个表变量declare @emailtable table(    email varchar(50))--定义一个XML变量declare @xml xmlset @xml = cast('<email>'+replace(@cc,';','</email><email>')+'</email>' as xml)insert into @emailtable (email)select t.i.value('.', 'varchar(50)') from @xml.nodes('email') t(i)select * from @emailtable 

代码二:
这个代码在MSSQL 2005测试成功, 在mssql 2000没有时间测试。下星期测试再修改这里。最后生成一个表变量。使用者可以把表变量转成需要的数据

--定义一个拿来测试的字串declare @cc varchar(1000)set @cc = 'hello@163.com;world@hotmail.com;iloveyou@yahoo.com'--定义一个表变量declare @emailtable table(    email varchar(50))--XML字串变量declare @xml2 varchar(1000)--XML handlerdeclare @xmlid int/*   这里要注意。不知道为什么,    <root><email>Email1</email><email>Email2</email><root>格式是只能处理一个email地址。   <root><data><email>Email1</email></data><data><email>Email2</email></data><root>   可以处理全部的emails。*/set @xml2 = '<root><data><email>'+replace(@cc,';','</email></data><data><email>')+'</email></data></root>'exec sp_xml_preparedocument @xmlid output, @xml2insert into @emailtable select * from openxml(@xmlid, '/root/data', 2) with(email varchar(50) 'email')select * from @emailtablesp_xml_removedocument @xmlid

使用XML的方法,比我以前写的那个痛快多了。如果MSSQL 2000能通过,要修改一下就代码。

通过 Wiz 发布

转载于:https://www.cnblogs.com/jianfangkk/archive/2011/12/17/2291458.html

使用XML在MSSQL把字串分解相关推荐

  1. 最长公共子序列(LCS)问题 Longest Common Subsequence 与最长公告字串 longest common substr...

    问题描述:字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列.令给定的字符序列X="x0,x1,-,xm-1",序列Y=& ...

  2. Android中添加字串资源出现问题

    在系统的framework/base/core/res/res中添加字串等资源,需要在framework/base/core/res/res/values/symbols.xml中同步添加资源字串,否 ...

  3. c语言中常量单双引号,C语言常量中字元与字串 除了单引号与双引号的区别外,还有什么不同。...

    C语言常量中字元与字串 除了单引号与双引号的区别外,还有什么不同.以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C语言 ...

  4. LeetCode中等题之无重复字符的最长字串

    题目 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 &q ...

  5. ACMNO.48 01字串

    01字串: 题目描述 基础练习 01字串 时间限制:1.0s 内存限制:256.0MB 问题描述 对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能.它们的前几个是: 00000 00 ...

  6. 算法--无重复字符的最长字串(详细)

    给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度 class Solution {public int lengthOfLongestSubstring(String s) {// ...

  7. VC 下 64bit 整数的显示和读取格式化字串

    2019独角兽企业重金招聘Python工程师标准>>> VC 下 64bit 整数的显示和读取格式化字串是: %I64d 转载于:https://my.oschina.net/moq ...

  8. php截取剩余部分,PHP从字串中截取一部分,支持使用(*)模糊截取

    <PHP从字串中截取一部分,支持使用(*)模糊截取>要点: 本文介绍了PHP从字串中截取一部分,支持使用(*)模糊截取,希望对您有用.如果有疑问,可以联系我们. 有时会有这种需求,就是从一 ...

  9. 海康摄像头取、录像机RTSP视频流的字串格式

    海康摄像头取.录像机RTSP视频流的字串格式 主码流 rtsp://IP:554/h264/ch1/main/av_stream rtsp://IP:554/ISAPI/streaming/chann ...

最新文章

  1. 【异步编程】Part3:取消异步操作
  2. GDCM:gdcm::Value的测试程序
  3. [学习笔记] 二分图基础定理的相关证明
  4. 数据结构之树的应用:并查集
  5. 卢伟冰:越是入门机 越应该把使用体验做好
  6. 二级公共基础知识_计算机二级选择题(公共基础知识)
  7. 上海市高校计算机一级考试试题,上海市计算机一级考试试题
  8. 华为QoS中CBQ队列详解
  9. bzoj3612 平衡 (dp)
  10. Servlet原理解析
  11. 点菜系统软件源码(点菜软件源码分享)
  12. php编程常用英语词汇,泰牛程序员 PHP编程掌握的英语词汇(3) 韩顺平整理
  13. libpng库的移植与使用
  14. Xmind8 思维导图
  15. Unity3D关于iTween知识详解和接口总结
  16. SpringBoot @EnableAutoConfiguration exclude属性失效
  17. 微信公众号模板消息推送(附上完整代码)
  18. QT学习笔记(六)——QT弹出对话框并在主窗口调用对话框的信息
  19. DICTATOR第一周排序部分作业
  20. 小米平板刷机shell怎么退_小米MI PAD(小米平板)手机快速救砖,线刷教程分享,小白轻松救活手机...

热门文章

  1. 一致性哈希(Consistent Hashing)
  2. C语言return函数
  3. 程序在内存中运行的奥秘
  4. 开源库nothings/stb的介绍及使用(图像方面)
  5. 票据自动处理系统著名研究团队
  6. 【Qt】QtCreator中关于Style Plugin Example没有效果的修改方法
  7. Bash脚本: 根据关键字做替换
  8. 东北师大计算机考研报名人数,东北师范大学考研难吗?一般要什么水平才可以进入?...
  9. 电脑计算机科学型,电脑里附带的计算器有标准型和科学型二种,它 – 手机爱问...
  10. python高级数据结构_Python高级数据结构(二)