- 博客(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
3059
原创 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
285
原创 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
359
原创 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
1137
原创 T-SQL按字节数截取varchar类型字符串
全半角字符混合时,使用LEFT()、SUBSTRING()并不能达成预期,编写自定义函数未免小题大做,如下表达式即可:CAST(字符串 AS varchar(目标长度) )
2020-05-17 17:16:56
744
原创 不那么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
6424
3
原创 xml转json的xslt脚本
2018年11月中旬起入职某医疗软件公司,担任接口开发程序员;基于自己以往技术实践所形成的偏好、也可能是某种路径依赖,总是倾向于使用存储过程实现接口需求。公司软件产品基于MS SQLServer开发,而SQLServer要很晚的版本才能支持json,因此必须另寻途径来处理xml与json之间的相互转换。其间花费了不少时间、查找许多资料、作各种尝试,目前在用的方案是借助Newtonsoft.Js...
2020-05-01 21:46:06
1026
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人