随笔分类 - MS SQL Server
摘要:有网友在网上问: 数据如下: 期望得到的结果: 下面是Insus.NET实现方法: 创建一个临时表,将用来存储最终结果: IF OBJECT_ID('tempdb..#TempRpt') IS NOT NULL DROP TABLE #TempRpt CREATE TABLE #TempRpt (
阅读全文
摘要:实现动态化,为表添加存储时间字段,Insus.NET写一个存储过程,如下 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- -- Author: Insus.NET -- Blog: https://insus.cnblogs.com -- Cr
阅读全文
摘要:MS SQL Server写动态SQL时,比如动态创建表,修改表,添加字段,我们需要判断字段是否存在。 你可以参考下面自定义函数: 源代码: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- -- Author: Insus.NET -- Blo
阅读全文
摘要:准备一些数据: CREATE TABLE [dbo].[SalesPerformance]( [ID] [int] IDENTITY(1,1) NOT NULL, [Salesman] NVARCHAR(30) NOT NULL, [OrderDate] [DATE] NULL, [Sell] DE
阅读全文
摘要:比如,在下面的销售业绩中,统计业务员的销售业绩中最大值和最小值。 下面是业务数据: CREATE TABLE [dbo].[SalesPerformance]( [ID] [int] IDENTITY(1,1) NOT NULL, [Salesman] NVARCHAR(30) NOT NULL,
阅读全文
摘要:标题是否符合网友的问题宗旨,另外讨论,暂且如此。想了妥解问题,还得看原讨论题。 这是一个网上的问题如下, ;with temp as ( select '63738893' repair_no,'20190504' report_date,'HES2418819040700003'service_s
阅读全文
摘要:比如下面一串字符,把连续的数字使用“-”连接起来。 结果要求如下: 解决问题,Insus.NET创建2个自定义函数: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- -- Author: Insus.NET -- Create date: 20
阅读全文
摘要:网上有人问: declare @WH varchar(MAX)set @WH='C1,C2,C3-C9,C20,C22,C30-C35'想要循环截取出含有-的字符串 C3-C9,C30-C35,展开C3-C9,C30-C35,将@WH替换为 'C1,C2,C3,C4,C5,C6,C7,C8,C9,C
阅读全文
摘要:一些字符串是由"-"连接字符连接。 想以这个连接字符"-"对字符串时行截取前后字符。 可以写一个自定义函数: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- -- Author: Insus.NET -- Create date: 2019-0
阅读全文
摘要:前端提交一串逗号分割的字符串,经存储过程,存入SQL数据表中。 表如下: CREATE TABLE [dbo].[Miscellaneous] ( [ID] INT IDENTITY(1,1) NOT NULL, [Item] NVARCHAR(50) NOT NULL DEFAULT(N'') )
阅读全文
摘要:把某一符串分割的字符串转换为 XML格式: DECLARE @str NVARCHAR(MAX) = N'fd,re,45,tyu,976,qwer,gdsg,uyt' DECLARE @xml XML = CAST(N'<insus>' + REPLACE(@str, N',',N'</insus
阅读全文
摘要:在较新版本的SQL中,出现有2个函数,STRING_SPLIT和STRING_AGG,前者是把带有分隔的字符串转换为表,而后者却是把表某一表转换为以某种字符分隔的字符串。 如下面: 把它转存为表: DECLARE @dump_data AS TABLE([value] NVARCHAR(MAX))
阅读全文
摘要:在MS SQL Server 2017有了一个新函数TRIM,整合以前版本LTRIM和RTRIM。 这几个函数都是去除字符串头部后尾部的空格。 DECLARE @str NVARCHAR(MAX) = N' Insus.NET ' SELECT @str AS [str], [dbo].[svf_S
阅读全文
摘要:如下面一串字符串: 为了计算得到字符串尾的空格长度,得先了解2个函数,LEN()和REVERSE(), LEN()函数返回文本字段中值的长度,这个函数,它包含字符串头部所有空格长度,但不包含字符串尾部所有空格。 另一个函数REVERSE()是将整个字符进行反转,'abcdef' --> 'fedcb
阅读全文
摘要:插入数据库方法很多,下面Insus.NET列举几种方法,看看你常用的是哪一种: 创建一张表: CREATE TABLE [dbo].[Network_Info] ( [ID] INT NOT NULL, [NAME] NVARCHAR(20) NULL, [MAC] VARCHAR(17) NULL
阅读全文
摘要:在本篇中,学习与练习SQL知识,程序中提供用户批量上传数据。在上传时也许会有网络中断,上传一部分,再重新上传。这样会有数据重复。 或者是需要对原有数据进行批量修改,删除等,要如何进行。 下面Insus.NET举个简单的例子。 先是在数据库创建一张表,是用来存储用户上传的数据。 CREATE TABL
阅读全文
摘要:先准备一些数据: 创建一张临时表来存储: DECLARE @json_table AS TABLE ( [type] NVARCHAR(MAX), [desc] NVARCHAR(MAX) ) 获取第一层数据: INSERT INTO @json_table ([type],[desc]) SELE
阅读全文
摘要:前端有可能一次性上传多笔记录,并使用JSON序列化。 现在在MS SQL Server 2016版本上,可以直接处理JSO数据。 如下面的前端序列化的数据: DECLARE @json_string NVARCHAR(MAX) = N' { "catalog":[ {"ID":23394,"Item
阅读全文
摘要:前面有一篇《在SQL中直接把查询结果转换为JSON数据》https://www.cnblogs.com/insus/p/10905566.html,是把table转换为json。 现反过来,当SQL从前端接收过来的数据是JSON的话,需要把它转换为TABLE。在MS SQL Server 2016有
阅读全文
摘要:在MS SQL Server 2016,已经支持JSON处理。 执行下面代码,将获取ms sql server对象类型以及其说明: IF OBJECT_ID('tempdb.dbo.#json_type') IS NOT NULL DROP TABLE #json_type CREATE TABLE
阅读全文