判断字符串是否为纯数字,负数不算。如'00012','54585','1000'

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[svf_IsNumeric]
(
@string NVARCHAR(MAX)
) RETURNS BIT --函数返BIT数据类型,是数字返回1,非数字返回0。
AS
BEGIN
DECLARE @rtv BIT = 1
DECLARE @str NVARCHAR(MAX) = LTRIM(RTRIM(ISNULL(@string,''))) --去除前后空格,如果为NULL转为'' 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 RETURN @rtv
END

Source Code

创建一个例子来演示:

CREATE TABLE [dbo].[uTable] ([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].[uTable] ([col1],[col2],[col3],[col4],[col5],[col6],[col7])
VALUES ('0.455','','SF46DG','','$%9KJ','-0034','-8554')
GO SELECT [dbo].[svf_IsNumeric] ([col1]) AS [col1],
[dbo].[svf_IsNumeric] ([col2]) AS [col2],
[dbo].[svf_IsNumeric] ([col3]) AS [col3],
[dbo].[svf_IsNumeric] ([col4]) AS [col4],
[dbo].[svf_IsNumeric] ([col5]) AS [col5],
[dbo].[svf_IsNumeric] ([col6]) AS [col6],
[dbo].[svf_IsNumeric] ([col7]) AS [col7]
FROM [dbo].[uTable]
GO

Source Code

MS SQL自定义函数IsNumeric的更多相关文章

  1. MS SQL自定义函数IsPositiveInteger MS SQL自定义函数IsNumeric 水晶报表使用IEnumerable<T>数据源

    MS SQL自定义函数IsPositiveInteger   判断字符串是否为正整数,0开始的的数字不算. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON ...

  2. MS SQL自定义函数判断是否正整数

    可以写一个函数: 主要是使用正则来判断.另外输入字符是空的话,使用"-"来替换. CREATE FUNCTION [dbo].[svf_NonNegativeInteger] ( ...

  3. MS SQL自定义函数IsPositiveInteger

    判断字符串是否为正整数,0开始的的数字不算. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE FUNCTION [dbo].[svf_I ...

  4. SQL自定义函数split分隔字符串

    SQL自定义函数split分隔字符串 一.F_Split:分割字符串拆分为数据表 Create FUNCTION [dbo].[F_Split] ( @SplitString nvarchar(max ...

  5. sql自定义函数及C#中调用

    1.在C#中调用sql自定义函数 1.1 标量值函数 sql语句调用 select  dbo.GetClassIDWithName(1) string strSql = string.Format(& ...

  6. Spark SQL 自定义函数类型

    Spark SQL 自定义函数类型 一.spark读取数据 二.自定义函数结构 三.附上长长的各种pom 一.spark读取数据 前段时间一直在研究GeoMesa下的Spark JTS,Spark J ...

  7. sql 自定义函数--固定格式字符转时间类型

    遇到一个德国的客户,他们的时间格式是JJJJ-TT-DD HH:MM:SS,程序按照这个格式将时间插入数据库,但是在sql自带的转换函数convert.cast过程中报错,网上搜了下都说用conver ...

  8. PL/SQL自定义函数

    从SQL表达式中调用函数的限制 为了从SQL表达式中调用函数,一个用户定义函数必须: 是存储函数 只接受IN函数 只接收有受的SQL数据类型,而不接受PL/SQL数据类型 返回数据类型为有效的SQL数 ...

  9. SQL自定义函数

    1,自定义函数--返回单一值 CREATE FUNCTION [dbo].[Round2] ( -- Add the parameters for the function here @p1 sql_ ...

随机推荐

  1. Java并发编程-volatile可见性的介绍

    要学习好Java的多线程,就一定得对volatile关键字的作用机制了熟于胸.最近博主看了大量关于volatile的相关博客,对其有了一点初步的理解和认识,下面通过自己的话叙述整理一遍. 有什么用? ...

  2. 记Javascript一道题的理解

    代码如下: function Foo(){ getName = function(){ console.log("1"); } return this; } Foo.getName ...

  3. oracle收集ash和awr性能报告方法

    1.收集ash报告 [oracle@1 ~]$ sqlplus / as sysdbaSQL*Plus: Release 12.1.0.2.0 Production on Fri Sep 21 18: ...

  4. 今天俺要说一说简单工厂模式(Simple Factory)

    前言:简单工厂不能说是设计模式,它是一种变成习惯,因为它不是23种设计模式之一,但是它在实际开发中经常用到,而且也非常简单,可以说是工厂模式的一个引导. 大多程序员都是单身狗,为了弥补一下你们的心情, ...

  5. asp.net core系列 37 WebAPI 使用OpenAPI (swagger)中间件

    一.概述 在使用Web API时,对于开发人员来说,了解其各种方法可能是一项挑战.在ASP.NET Core上,Web api 辅助工具介绍二个中间件,包括:Swashbuckle和NSwag .NE ...

  6. 用gogs轻松搭建个人的git服务器

    因为公司和家里电脑里面有些项目需做版本控制或者说共享吧,就想搭个自己的git服务器:原本想用gitlab,不过我服务器配置比较差,查了一下,看到gogs,眼前一亮: Gogs 的目标是打造一个最简单. ...

  7. SRS-开源流媒体服务器

    SRS 简介 SRS定位是运营级的互联网直播服务器集群,追求更好的概念完整性和最简单实现的代码.SRS提供了丰富的接入方案将RTMP流接入SRS, 包括推送RTMP到SRS.推送RTSP/UDP/FL ...

  8. leetcode — distinct-subsequences

    import java.util.Arrays; /** * * Source : https://oj.leetcode.com/problems/distinct-subsequences/ * ...

  9. Alibaba Cluster Data 开放下载:270GB 数据揭秘你不知道的阿里巴巴数据中心

    打开一篇篇 IT 技术文章,你总能够看到“大规模”.“海量请求”这些字眼.如今,这些功能强大的互联网应用,都运行在大规模数据中心上,然而,对于大规模数据中心,你又了解多少呢?实际上,除了阅读一些科技文 ...

  10. Java提高班(一)Thread详解

    一.概述 在开始学习Thread之前,我们先来了解一下 线程和进程之间的关系: 线程(Thread)是进程的一个实体,是CPU调度和分派的基本单位. 线程不能够独立执行,必须依存在应用程序中,由应用程 ...