当前位置:  数据库>sqlserver

判断字符串是否为数字的方法介绍

    来源: 互联网  发布时间:2014-08-29

    本文导语:    判断字符串是否为数字,起初很简单的就写上了TRY...CATCH语句来判断,当时就指考虑了字符乘上数字一定会报错,就利用错误处理机制来判断是否为数字!   代码如下: CREATE FUNCTION A (     @str NVARCHAR(MAX) ) RETURNS INT AS   ...

  判断字符串是否为数字,起初很简单的就写上了TRY...CATCH语句来判断,当时就指考虑了字符乘上数字一定会报错,就利用错误处理机制来判断是否为数字!
 

代码如下:
CREATE FUNCTION A
(
    @str NVARCHAR(MAX)
)
RETURNS INT
AS
    BEGIN
        DECLARE @bit BIT;
        BEGIN TRY
             SELECT @str * 1;
             SET @bit = 1;
        END TRY
        BEGIN CATCH
             SET @bit = 0;
        END CATCH
        RETURN @bit;
    END

  这个方法不妥,很多的问题:
  1.题目给出的是函数,函数里面是不能套用TRY...CATCH的;
  2.如果是十六进制,八进制或者二进制的字符串怎么办?二进制或八进制分别由0-1和0-7组成,或许可以更好的识别的为数字,但十六进制就不行了,多了A-F这几个字母,这样一弄,绝对会识别为不是数字,但它确实是十六进制的数字表达法!
  3.函数要有返回值,这么写会报错:"函数中含有的 SELECT 语句无法向客户端返回数据."
  4.可能说用PRINT,同样使用PRINT也会报错:"在函数内对带副作用的运算符 'PRINT' 的使用无效."

  首先,就是要考虑,怎么把一个为八进制或十六进制的字符串转换为十进制的表达式(二进制暂时忽略掉),利用几种进制相互转换的攻势,写了一个进制转换的函数!但这里有一个问题,一个字符串我怎么判断它是八进制,十进制或者说十六进制,这里为了能更好的让程序自己去处理这个进制转换的事情,所以按照默认的进制表达式来处理了!例如八进制以0开头,十六进制以0x开头,其它的为十进制的,二进制暂不考虑!
 

代码如下:
/************************************************
   根据传入的字符,转换为可以用的十进制;
   八进制:0开头;
   十六进制:0x开头; 
*************************************************/
CREATE FUNCTION ChangeNum
(
    @str NVARCHAR(MAX) --字符串
)
RETURNS NVARCHAR(MAX)
AS
    BEGIN
        DECLARE
            @_Temp NVARCHAR(MAX),
            @i INT;
        
        SET @i = 1;
            
        --去掉左右两边的空格,并且全部大写;
        SET @str = LTRIM(RTRIM(UPPER(@str)));
        SET @_Temp = '';
        
        --十六进制
        IF SUBSTRING(@str,1,2) = '0X'
            BEGIN
                WHILE @i

    
 
 

您可能感兴趣的文章:

  • java实现判断字符串是否全是数字的四种方法代码举例
  • 怎样判断一个字符串在另一个字符串里面?
  • 判断字符串中是否有汉字。。
  • 怎么判断一个字符串数组里是不是包含另一个字符串?
  • php判断字符串是否存在 php字符串检测代码
  • 请问如何判断一个字符串是否为空呀?
  • c语言有什么简单办法判断一个字符串是否是合法日期?
  • php判断字符串在另一个字符串位置的方法
  • 如何判断字符串的编码方式? (分多快抢啊)
  • 如何从java字符串中判断空格在第几位
  • php判断字符与字符串的包含方法属性
  • 帮帮忙!!!请问在javascript中判断字符串中包含某一特定字符
  • php如何判断字符串是否存在
  • php 判断字符串是否包含html标签
  • 怎么样判断字符串中是否有汉字?
  • 如何判断字符串是否相等?
  • 如何判断 字符串的编码方式
  • 怎么判断字符串的编码?
  • 请问如何判断字符串中的字符在a~z之间
  • 如何在字符串中判断是否含有某个字符?
  • 请问有没有办法判断一串字符串是否经过base64编码
  • mysql中如何判断当前是字符 mysql判断字段中有无汉字
  • 请问怎样判断一个字符是中文字符还是英文字符?(空)
  • 请问怎么实现判断TextField里输入的是int型整数还是字符串,或者其他的字符??
  • java判断日期字符是否有效(在线等待答案)
  • js正则判断非法字符限制输入
  • Java判断字符串为空、字符串是否为数字
  • c#判断字符是否为中文的三种方法分享(正则表达式判断)
  • 请问java如何判断中文字和字符,有没有这样的类或方法...
  • java 里怎样判断一个字符串为空?
  • 如何在脚本中判断一个字符串是否存在于一个文件中?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ Vectors 成员 empty():判断Vector是否为空(返回true时为空)
  • shell如何判断文件是否存在,如何判断变量是否为空
  • javascript操作html复选框checkbox:如何判断复选框是否被选中
  • 在判断自符是否等于**时,用equals(“**”),那么如果我想判断它的值是否>=2该用什么呢?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • unix下如何判断一个文件夹是否存在?(也就是某个路径是否存在)
  • linux 下的自解压文件是什么格式,如何判断文件是否为自解压c++或者脚本判断均可
  • 在JSP如何判断str1是否在str2中?是否有相应的函数?
  • JQuery 判断某个属性是否存在hasAttr用法
  • 请问如何判断一个文件夹是否存在
  • java判断远程服务器上的文件是否存在的方法
  • PHP判断文章里是否有图片的简单方法
  • PHP判断是否有Get参数的方法
  • informix数据库中怎么判断一个表是否存在?(esql/c)
  • 如何判断目录是否为空
  • 请问如何判断 request.getparameter 是否有值
  • mysql 判断记录是否存在方法比较
  • mysql中判断记录是否存在方法比较
  • jquery怎么判断html元素是否存在
  • 在BBS中怎么样判断用户是否在线?
  • jQuery怎么判断iframe中元素是否存在
  • linux->shell-> if 条件判断,关于软连接的判断!
  • 怎么判断串口已经收到数据,并及时读出?怎么判断串口已经将写入的数据发送完毕?
  • 我是学pb的,判断闰年的是isdate("2-28"),但在java里怎么判断呢?
  • 知道TCP/UDP的包头,如何判断其应用层协议类型,struct tcphdr和 struct udphdr结构中那个变量能判断应用层协议类型。
  • 如何判断在线用户,主要是如何判断用户关闭所有窗口(即他已经不在线了)?
  • 如何判断一个数是否为4的幂次方?若是,并判断出来是多少次方?
  • 判断图片-判断位图是否是黑白图片的方法
  • 判断文件格式的c库函数
  • sftp命令如何判断成功与否?
  • Shell条件判断疑问?




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3