随笔分类 -  User-Defined Functions

摘要:今天是母亲节,它是在每一年的五月份的第二个星期天,而父亲节,是在每一个的六月份的第三个星期天。 把星期天设置为每周的开始,将一周的第一天设置为从 1 到 7 的一个数字。 参考MSDN:https://docs.microsoft.com/zh-cn/sql/t-sql/statements/set 阅读全文
posted @ 2019-05-12 13:16 Insus.NET 阅读(937) 评论(0) 推荐(1) 编辑
摘要:DATENAME和DATEPART有何区别,Insus.NET写成一个函数,可以方便查询与对比: 一个是返回一个字符串,另一个是返回一个整数。 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- -- Author: Insus.NET -- Cr 阅读全文
posted @ 2019-05-10 14:51 Insus.NET 阅读(657) 评论(0) 推荐(1) 编辑
摘要:指定一个日期,获取其所属周的开始日期和结束日期。以及前一周和后一周的开始日期和结束日期。 Insus.NET把这个功能写成一个自定义函数Table-values Functions。 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- -- Aut 阅读全文
posted @ 2019-05-10 11:59 Insus.NET 阅读(2051) 评论(0) 推荐(1) 编辑
摘要:根据需求,需要把某一些数字或字符串进行格式化,前导或后导字符串。Insus.NET把这个功能写成一个自定义函数。需要时,直接使用即可。 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- -- Author: Insus.NET -- Create 阅读全文
posted @ 2019-05-10 10:14 Insus.NET 阅读(827) 评论(0) 推荐(1) 编辑
摘要:很早以前,写过一个函数,是获取二月份的天数。《T-SQL获取二月份天数》https://www.cnblogs.com/insus/archive/2011/04/22/2025019.html 其中这个函数内就此相关的判断: SET ANSI_NULLS ON GO SET QUOTED_IDEN 阅读全文
posted @ 2019-05-09 23:45 Insus.NET 阅读(1214) 评论(0) 推荐(1) 编辑
摘要:在MS SQL Server实现这个功能,方法很多。下面Insus.NET使用2个方法来获取。 第一种,首先参考此篇《获取某一日期所在月份的第一天日期或最后一天日期》https://www.cnblogs.com/insus/p/10841647.html 接下来,就可以写成一个函数,日后在程序中, 阅读全文
posted @ 2019-05-09 23:13 Insus.NET 阅读(781) 评论(0) 推荐(1) 编辑
摘要:获取指定日期所属月份的第一天日期: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- -- Author: Insus.NET -- Create date: 2019-05-09 -- Update date: 2019-05-09 -- De 阅读全文
posted @ 2019-05-09 22:53 Insus.NET 阅读(3515) 评论(0) 推荐(1) 编辑
摘要:在MS SQL Server中,获取某一年的天数。 你可以先参考下面这篇《获取指定日期所属年份的第一天日期或最后一天日期》 https://www.cnblogs.com/insus/p/10839469.html 就可以使用MS SQL 的一个DATEDIFF函数算出这2个日期之间的日期间隔了。 阅读全文
posted @ 2019-05-09 20:29 Insus.NET 阅读(964) 评论(0) 推荐(1) 编辑
摘要:实现这个功能,先参考下面几篇博文《T-SQL获取二月份天数》https://www.cnblogs.com/insus/archive/2011/04/22/2025019.html 《如何获取月份的天数》https://www.cnblogs.com/insus/archive/2011/09/1 阅读全文
posted @ 2019-05-09 14:28 Insus.NET 阅读(1564) 评论(0) 推荐(1) 编辑
摘要:MS SQL 处理字符串,可以把字符串拆分为单独字符,转存入至一张表中。这样可以做到很多其它相关处理。 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- -- Author: Insus.NET -- Create date: 2019-05-0 阅读全文
posted @ 2019-05-09 08:04 Insus.NET 阅读(606) 评论(0) 推荐(1) 编辑
摘要:可以写一个函数: 主要是使用正则来判断。另外输入字符是空的话,使用"-"来替换。 CREATE FUNCTION [dbo].[svf_NonNegativeInteger] ( @val NVARCHAR(4000) ) RETURNS BIT AS BEGIN DECLARE @rtv BIT 阅读全文
posted @ 2018-11-19 08:09 Insus.NET 阅读(1554) 评论(0) 推荐(1) 编辑
摘要:根据这篇《字符是否为SQL的保留字》https://www.cnblogs.com/insus/p/9979789.html 我们可以不必去创建一张表来存储这些关键词,可以直接写一个函数来实现: CREATE FUNCTION [dbo].[svf_IsExistDataList] ( @Searc 阅读全文
posted @ 2018-11-19 00:31 Insus.NET 阅读(984) 评论(0) 推荐(1) 编辑
摘要:要想知道字符是否为MS SQL Server保留字,那我们必须把SQL所有保留字放在一个数据集中。然后我们才能判断所查找的字符是否被包含在数据集中。 MS SQL Server保留字: 此时,我们可以把这字符串拆分插入一张表中: CREATE TABLE [dbo].[ReservedWordOfS 阅读全文
posted @ 2018-11-18 21:56 Insus.NET 阅读(1213) 评论(0) 推荐(1) 编辑
摘要:在数据库实现字符串分割,然后获取分割后右边的字符串,如: 实现这个功能,主要是从右边开始去获取分割的字符的位置来进行切割: CREATE FUNCTION [dbo].[svf_GetSplitRightString] ( @InputString NVARCHAR(4000) , @Delimit 阅读全文
posted @ 2018-11-18 19:30 Insus.NET 阅读(881) 评论(0) 推荐(1) 编辑
摘要:如下面这个样子: 本函式是学习使用WHILE以及SUBSTRING的应用: CREATE FUNCTION [dbo].[svf_SplitStringToSingleCharacter]( @DataSource NVARCHAR(4000) ) RETURNS NVARCHAR(4000) AS 阅读全文
posted @ 2018-11-18 13:00 Insus.NET 阅读(1037) 评论(0) 推荐(1) 编辑
摘要:如标题所示,在MS SQL数据库,实现一个功能,查找某一字符串在目标字符串中所在的位置。 在数据库实现这个函数: CREATE FUNCTION [dbo].[svf_FindPosition] ( @Target NVARCHAR(4000), @ListSource NVARCHAR(4000) 阅读全文
posted @ 2018-11-17 15:51 Insus.NET 阅读(2542) 评论(0) 推荐(1) 编辑
摘要:判断字符串是否为正整数,0开始的的数字不算。 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE FUNCTION [dbo].[svf_IsPositiveInteger] ( @string NVARCHAR(MAX) ) RETURN 阅读全文
posted @ 2018-11-07 09:29 Insus.NET 阅读(926) 评论(1) 推荐(1) 编辑
摘要:判断字符串是否为纯数字,负数不算。如'00012','54585','1000' SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE FUNCTION [dbo].[svf_IsNumeric] ( @string NVARCHAR(MAX 阅读全文
posted @ 2018-11-07 08:56 Insus.NET 阅读(998) 评论(2) 推荐(1) 编辑
摘要:昨天有帮助网友解决的个字符串截取的问题,《截取字符串中最后一个中文词语(MS SQL)》http://www.cnblogs.com/insus/p/7883606.html 虽然实现了,但始终觉得代码写得很复杂。MS SQL Server中没有一个如同C#一样的函数LastIndexOf。没有,我 阅读全文
posted @ 2017-11-24 11:54 Insus.NET 阅读(520) 评论(0) 推荐(1) 编辑
摘要:有朋友需求一个问题,就是处理一张表中某一字段,从这个字段中去截取内容中最后一个中文词语。 ID SourceText Result 1 张达:U:1杨英苹:U:1,周忱:U:1,;苗桥:U:1,章玮:U:1,; 2 gaoying,高颖:U; 3 gaoying,高颖:U; 4 mq,苗桥;ding 阅读全文
posted @ 2017-11-23 11:46 Insus.NET 阅读(889) 评论(0) 推荐(1) 编辑