MS SQL自定义函数IsPositiveInteger
判断字符串是否为正整数,0开始的的数字不算。
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO CREATE FUNCTION [dbo].[svf_IsPositiveInteger]
(
@string NVARCHAR(MAX)
) RETURNS BIT --函数返BIT数据类型,是数字返回1,非数字返回0。
AS
BEGIN
DECLARE @rtv BIT = 1
DECLARE @str NVARCHAR(MAX) = LTRIM(RTRIM(ISNULL(@string,''))) --去除前后空格,如果为NULL转为'' IF ASCII(SUBSTRING(@str, 1, 1)) = 48 --如果字符串第一位为0
BEGIN
SET @rtv = 0 --直接判断为非正整数
END
ELSE
BEGIN
DECLARE @start INT = 1;
DECLARE @end INT = LEN(@str) --获取字符串长度 WHILE (@start <= @end) --循环字符串每一个字符
BEGIN
DECLARE @Numeric VARCHAR(1) = '' SET @Numeric = SUBSTRING(@str, @start, @start + 1) -- 每循环一次从左边获取一位字符 IF ASCII(@Numeric) >= 48 AND ASCII(@Numeric) <= 57 --如果是数字
BEGIN
SET @start = @start + 1;
CONTINUE --继续循环
END
ELSE
BEGIN
SET @rtv = 0
BREAK --跳出循环
END
END
END
RETURN @rtv
END
Source Code
列举例子说明:
CREATE TABLE [dbo].[uTstTable] ([col1] NVARCHAR(20),[col2] NVARCHAR(20),[col3] NVARCHAR(20),[col4] NVARCHAR(20),[col5] NVARCHAR(20),[col6] NVARCHAR(20),[col7] NVARCHAR(20))
GO INSERT INTO [dbo].[uTstTable] ([col1],[col2],[col3],[col4],[col5],[col6],[col7])
VALUES ('0.65','','SF46DG','','$54KQ','-0034','-855.4')
GO SELECT [dbo].[svf_IsPositiveInteger] ([col1]) AS [col1],
[dbo].[svf_IsPositiveInteger] ([col2]) AS [col2],
[dbo].[svf_IsPositiveInteger] ([col3]) AS [col3],
[dbo].[svf_IsPositiveInteger] ([col4]) AS [col4],
[dbo].[svf_IsPositiveInteger] ([col5]) AS [col5],
[dbo].[svf_IsPositiveInteger] ([col6]) AS [col6],
[dbo].[svf_IsPositiveInteger] ([col7]) AS [col7]
FROM [dbo].[uTstTable]
GO
Source Code
MS SQL自定义函数IsPositiveInteger的更多相关文章
- MS SQL自定义函数IsPositiveInteger MS SQL自定义函数IsNumeric 水晶报表使用IEnumerable<T>数据源
MS SQL自定义函数IsPositiveInteger 判断字符串是否为正整数,0开始的的数字不算. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON ...
- MS SQL自定义函数判断是否正整数
可以写一个函数: 主要是使用正则来判断.另外输入字符是空的话,使用"-"来替换. CREATE FUNCTION [dbo].[svf_NonNegativeInteger] ( ...
- MS SQL自定义函数IsNumeric
判断字符串是否为纯数字,负数不算.如'00012','54585','1000' SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE FUN ...
- SQL自定义函数split分隔字符串
SQL自定义函数split分隔字符串 一.F_Split:分割字符串拆分为数据表 Create FUNCTION [dbo].[F_Split] ( @SplitString nvarchar(max ...
- sql自定义函数及C#中调用
1.在C#中调用sql自定义函数 1.1 标量值函数 sql语句调用 select dbo.GetClassIDWithName(1) string strSql = string.Format(& ...
- Spark SQL 自定义函数类型
Spark SQL 自定义函数类型 一.spark读取数据 二.自定义函数结构 三.附上长长的各种pom 一.spark读取数据 前段时间一直在研究GeoMesa下的Spark JTS,Spark J ...
- sql 自定义函数--固定格式字符转时间类型
遇到一个德国的客户,他们的时间格式是JJJJ-TT-DD HH:MM:SS,程序按照这个格式将时间插入数据库,但是在sql自带的转换函数convert.cast过程中报错,网上搜了下都说用conver ...
- PL/SQL自定义函数
从SQL表达式中调用函数的限制 为了从SQL表达式中调用函数,一个用户定义函数必须: 是存储函数 只接受IN函数 只接收有受的SQL数据类型,而不接受PL/SQL数据类型 返回数据类型为有效的SQL数 ...
- SQL自定义函数
1,自定义函数--返回单一值 CREATE FUNCTION [dbo].[Round2] ( -- Add the parameters for the function here @p1 sql_ ...
随机推荐
- 【快速入门ORM框架之Dapper】大牛勿进系列
前言:dapper是什么?Dapper是.NET下一个micro的ORM,它和Entity Framework或Nhibnate不同,属于轻量级的,并且是半自动的.也就是说实体类都要自己写.它没有复杂 ...
- C# 《编写高质量代码改善建议》整理&笔记 --(一)基本语言篇
题记:这是自己的观后感,工作两年了,本来打算好好学习设计模式,或者作为客户端深入了解GPU编程的,但是突然发现还有这么一本书. <编写高质量代码改善建议>,感觉这正是自己需要的. 我是做 ...
- PHP中的反射
PHP中的反射 PHP5 具有完整的反射 API,添加了对类.接口.函数.方法和扩展进行反向工程的能力. 此外,反射 API 提供了方法来取出函数.类和方法中的文档注释. 请注意部分内部 API 丢失 ...
- vs2012 aps.net 4.5尚未在web服务器上注册,您需要手动将Web服务器配置为
系统换成Windows10安装VS2012打开项目总提示:vs2012 aps.NET 4.5尚未在web服务器上注册,您需要手动将Web服务器配置为使用ASP.net 4.5,这样您的网站才可能正确 ...
- 带着萌新看springboot源码11(springboot启动原理 源码上)
通过前面这么多讲解,springboot原理应该也大概有个轮廓了,一些基本的配置,从客户端url到controller(配置一些要用的组件,servlet三大组件,处理器映射器,拦截器,视图解析器这些 ...
- 知其所以然~分布式事务cap
背景 一致性是一个抽象的.具有多重含义的计算机术语,在不同应用场景下,有不同的定义和含义.在传统的IT时代,一致性通常指强一致性,强一致性通常体现在你中有我.我中有你.浑然一体:而在互联网时代,一致性 ...
- Chapter 5 Blood Type——26
"I saw his face — I could tell." “我看到他的脸了 —— 我知道.” "How did you see me? I thought you ...
- 补习系列(4)-springboot 参数校验详解
目录 目标 一.PathVariable 校验 二.方法参数校验 三.表单对象校验 四.RequestBody 校验 五.自定义校验规则 六.异常拦截器 参考文档 目标 对于几种常见的入参方式,了解如 ...
- Hbase王国游记之:Hbase客户端API初体验
§历史回顾 2018年岁末,李大胖朦胧中上了开往Hbase王国的车,伴着一声长鸣,列出缓缓驶出站台,奔向无垠的广袤. (图片来自于网络) 如不熟悉剧情的,可观看文章: 五分钟轻松了解Hbase列式存储 ...
- RSA签名的PSS模式
本文由云+社区发表 作者:mariolu 一.什么是PSS模式? 1.1.两种签名方式之一RSA-PSS PSS (Probabilistic Signature Scheme)私钥签名流程的一种填充 ...