- 博客(7)
- 收藏
- 关注
原创 SQLServer T-SQL 二进制值与base64串相互转换
之前查到有文章介绍借助xs:base64Binary()函数,这里提供另一种、可能还更简单的表达式,示例如下: -------------------------------二进制数据base64编码 (SELECT [二进制值] FOR XML PATH(''),TYPE).value('text()[1]', 'varchar(max)') -------------------------------base64串还原二进制数据 CAST([base64串] as xml).value('text(
2022-03-27 11:20:33
3267
原创 xml转json的xslt脚本 v2.6
在v2.5版本基础上增加了对于嵌套数组输出的支持,但同时也增加了20%左右的执行耗时;两个版本均可以分别作为最终版本使用,因为在数据交换的应用需求场景,采取嵌套数组的情形几乎不会存在。 当元素同时符合以下各项条件,子元素作为嵌套数组输出: 1、正被输出为数组中的一项; 2、不存在待输出属性; 3、不存在文本节点; 4、所有子元素与本元素同名; 5、子元素应当按数组方式输出。 脚本如下: <?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesh
2020-07-06 11:36:27
330
原创 xml转json的xslt脚本 v2.5
陆续修改过好几版,相较之前第一次发布的版本,改动相当大。 一、新增实现内容: 1、回行/缩进排版; 2、多个text节点可以按数组方式全部输出; 3、同一层级的同名元素,即使位置不相邻,也能够按数组方式正常输出; 二、输出结果略有所不同: 1、xml属性按json名称"@属性名称"输出; 2、text()节点按json名称"#text"输出; 3、简单元素值按null 值、还是空字符串输出,其判断条件有所改变。 三、脚本结构改动以及其它优化: 1、取消单独的<xsl:template match="/
2020-06-25 10:43:45
408
原创 SQLServer T-SQL使用select...for xml path 合并字符串时恢复被转义字符
待合并字段中可能出现 <、>、&、Tab、换行等在xml中将被转义的字符,从而导致获得不符合预期的字符串结果,可使用如下表达式: (SELECT 字段或表达式 FROM 表 FOR XML PATH(''), TYPE).value('/', 'varchar(MAX)') 以下为相同执行效果的另几种xpath表达: (SELECT 字段或表达式 FROM 表 FOR XML PATH(''), TYPE).value('.', 'varchar(MAX)') (SELECT 字段或
2020-05-24 09:26:27
1232
原创 T-SQL按字节数截取varchar类型字符串
全半角字符混合时,使用LEFT()、SUBSTRING()并不能达成预期,编写自定义函数未免小题大做,如下表达式即可: CAST(字符串 AS varchar(目标长度) )
2020-05-17 17:16:56
788
原创 不那么SQL的SQL代码(一)if not exists(...) insert
许多程序员从过程式语言起手学习编程,受过程式思维习惯写就的SQL代码,常常显得不那么SQL,因为SQL语言的主要特征之一是“高度非过程化”(某教书如是说)。 近日遇有一例典型:公司产品客户端程序更新后系统代码表漏添某行数据,导致某新增功能无法从界面上配置启用。后主程序组人员发来一小段T-SQL代码,供ssms执行以添加该行系统代码数据,代码大意如下: if not exists (select 1 from 系统代码表 where 字段1 = '值1' and 字段2 = '值2') insert in
2020-05-16 17:53:39
6597
3
原创 xml转json的xslt脚本
2018年11月中旬起入职某医疗软件公司,担任接口开发程序员;基于自己以往技术实践所形成的偏好、也可能是某种路径依赖,总是倾向于使用存储过程实现接口需求。 公司软件产品基于MS SQLServer开发,而SQLServer要很晚的版本才能支持json,因此必须另寻途径来处理xml与json之间的相互转换。 其间花费了不少时间、查找许多资料、作各种尝试,目前在用的方案是借助Newtonsoft.Js...
2020-05-01 21:46:06
1125
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅