使用XML在MSSQL把字串分解
今天要在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能通过,要修改一下就代码。
转载于:https://www.cnblogs.com/jianfangkk/archive/2011/12/17/2291458.html
使用XML在MSSQL把字串分解相关推荐
- 最长公共子序列(LCS)问题 Longest Common Subsequence 与最长公告字串 longest common substr...
问题描述:字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列.令给定的字符序列X="x0,x1,-,xm-1",序列Y=& ...
- Android中添加字串资源出现问题
在系统的framework/base/core/res/res中添加字串等资源,需要在framework/base/core/res/res/values/symbols.xml中同步添加资源字串,否 ...
- c语言中常量单双引号,C语言常量中字元与字串 除了单引号与双引号的区别外,还有什么不同。...
C语言常量中字元与字串 除了单引号与双引号的区别外,还有什么不同.以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C语言 ...
- LeetCode中等题之无重复字符的最长字串
题目 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 &q ...
- ACMNO.48 01字串
01字串: 题目描述 基础练习 01字串 时间限制:1.0s 内存限制:256.0MB 问题描述 对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能.它们的前几个是: 00000 00 ...
- 算法--无重复字符的最长字串(详细)
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度 class Solution {public int lengthOfLongestSubstring(String s) {// ...
- VC 下 64bit 整数的显示和读取格式化字串
2019独角兽企业重金招聘Python工程师标准>>> VC 下 64bit 整数的显示和读取格式化字串是: %I64d 转载于:https://my.oschina.net/moq ...
- php截取剩余部分,PHP从字串中截取一部分,支持使用(*)模糊截取
<PHP从字串中截取一部分,支持使用(*)模糊截取>要点: 本文介绍了PHP从字串中截取一部分,支持使用(*)模糊截取,希望对您有用.如果有疑问,可以联系我们. 有时会有这种需求,就是从一 ...
- 海康摄像头取、录像机RTSP视频流的字串格式
海康摄像头取.录像机RTSP视频流的字串格式 主码流 rtsp://IP:554/h264/ch1/main/av_stream rtsp://IP:554/ISAPI/streaming/chann ...
最新文章
- 【异步编程】Part3:取消异步操作
- GDCM:gdcm::Value的测试程序
- [学习笔记] 二分图基础定理的相关证明
- 数据结构之树的应用:并查集
- 卢伟冰:越是入门机 越应该把使用体验做好
- 二级公共基础知识_计算机二级选择题(公共基础知识)
- 上海市高校计算机一级考试试题,上海市计算机一级考试试题
- 华为QoS中CBQ队列详解
- bzoj3612 平衡 (dp)
- Servlet原理解析
- 点菜系统软件源码(点菜软件源码分享)
- php编程常用英语词汇,泰牛程序员 PHP编程掌握的英语词汇(3) 韩顺平整理
- libpng库的移植与使用
- Xmind8 思维导图
- Unity3D关于iTween知识详解和接口总结
- SpringBoot @EnableAutoConfiguration exclude属性失效
- 微信公众号模板消息推送(附上完整代码)
- QT学习笔记(六)——QT弹出对话框并在主窗口调用对话框的信息
- DICTATOR第一周排序部分作业
- 小米平板刷机shell怎么退_小米MI PAD(小米平板)手机快速救砖,线刷教程分享,小白轻松救活手机...
热门文章
- 一致性哈希(Consistent Hashing)
- C语言return函数
- 程序在内存中运行的奥秘
- 开源库nothings/stb的介绍及使用(图像方面)
- 票据自动处理系统著名研究团队
- 【Qt】QtCreator中关于Style Plugin Example没有效果的修改方法
- Bash脚本: 根据关键字做替换
- 东北师大计算机考研报名人数,东北师范大学考研难吗?一般要什么水平才可以进入?...
- 电脑计算机科学型,电脑里附带的计算器有标准型和科学型二种,它 – 手机爱问...
- python高级数据结构_Python高级数据结构(二)