首页 > 数据库 >sqlserver判断字符串是否是数字

sqlserver判断字符串是否是数字

时间:2023-12-25 12:34:55浏览次数:39  
标签:返回 数字 -- eg sqlserver 是否是 1e1 ISNUMERIC 字符串

 sql2005有个函数ISNUMERIC(expression)函数:当expression为数字时,返回1,否则返回0。这只是一个菜鸟级的解决办法,大多数情况比较奏效。

eg:

select ISNUMERIC('123') --结果为1
但是,该函数有个缺点!

eg:

复制代码
 SELECT 
 ,ISNUMERIC('-') as '-'    --1
 ,ISNUMERIC('+') as '+'    --1
 ,ISNUMERIC('$') as '$'    --1
 ,ISNUMERIC('.') as '.'    --1
 ,ISNUMERIC(',') as ','    --1
 ,ISNUMERIC('\') as '\'    --1
 ,ISNUMERIC('2D3') AS '2D3'--1
,ISNUMERIC('1d1') AS '1d1'--1
,ISNUMERIC('1e1') AS '1e1'--1
,ISNUMERIC('d') AS 'd'   --0
复制代码
当含有美元符、加减号、逗号等符号时,或者D、E的前后均出现数字时,也会返回1,这就比较头疼了。标点符号倒是好理解,为什么d,e这种情况,真是不理解微软设计的意图。

有什么好的解决办法吗?当然了,请看下面

方法:通配符。高逼格使用。

适用场景:2005及以上(2005之前的版本没试过,应该也支持)

 --返回0-则为纯数字(支持正负数,小数点)
 SELECT PATINDEX('%[^0-9|.|-|+]%','2.2')--返回0

 --返回0-则为纯整数
select PATINDEX('%[^0-9]%', '2.2')--返回非0

标签:返回,数字,--,eg,sqlserver,是否是,1e1,ISNUMERIC,字符串
From: https://blog.51cto.com/u_14682436/8965630

相关文章

  • Docker 下安装免费版 Sqlserver
    在Docker中运行的免费版SQLServer和正式收费版SQLServer之间通常有以下差别:功能限制性能限制:免费版SQLServer可能会有性能方面的限制,例如最大数据库大小、最大内存限制或并发连接数限制。这些限制可能对大型生产环境的数据库影响较大。功能限制:免费版SQLServer......
  • python 把包含uincode字符串变成中文
    1defget_info_by_pattern(text,pattern):2p=re.compile(pattern)3p_res=p.findall(text)4returnp_res56#把包含uincode字符串变成中文7defunicode_to_chinese(text):8pattern_unicode='u[0-9a-z]{4}'9p_res=get_i......
  • 『LeetCode』8. 字符串转换整数 (atoi) String to Integer (atoi)
    题目描述请你来实现一个myAtoi(strings)函数,使其能将字符串转换成一个32位有符号整数(类似C/C++中的atoi函数)。函数myAtoi(strings)的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。确定最终结果是负数还是正......
  • words这些数组反推aes/des等iv/key的字符串
    我们经常会遇到一些js里面先见到words等数组的,但是不知道它原始的字符串是什么的情况,这个时候我们可以使用对称的stringify进行还原,比如CryptoJS.enc.Utf8.parse('key或者iv值')的结果,我们可以通过CryptoJS.enc.Utf8.stringify(CryptoJS.enc.Utf8.parse('key或者iv值'))进行还原......
  • 字符串【下】
    \(\color{white}{P5546最长公共子串}\)把字符串拼起来,也就是用#连接,然后在上面做最长重复且属于所有串的后缀均出现过的子串。也就是满足以下条件的子串重复过其中包含的后缀可以覆盖所有的串这样的子串是合格的。要求求得一个最长的串满足上述条件。最长也就是要求......
  • CSP-S 2023消消乐 字符串哈希做法and链表优化dp做法
    做完这题感觉整个人都升华了...打算说一下两种做法,字符串哈希和dp均可。dp则需要维护一个前向星去检索出第一个符合要求的位置。题解明天补,先写高数了。#include<bits/stdc++.h>#defineintlonglong#defineullunsignedlonglong#definerep(i,a,b)for(inti=(a);i<......
  • C++ Qt开发:字符串QString容器
    在Qt框架中,QString是一个强大而灵活的字符串容器,专为处理Unicode字符而设计。它提供了许多方便的方法来操作和处理字符串,使得在跨平台开发中能够轻松地进行文本操作。QString是Qt开发中不可或缺的一部分,它的灵活性和强大的功能使其成为处理文本和字符串操作的理想选择。本篇......
  • SQLServer的varchar与nvarchar的学习之二
    SQLServer的varchar与nvarchar的学习之二背景昨天简单总结了多种数据库varchar和nvarchar的区别与关系今天想着能够分析一下数据库文件.计划使用winhex查看数据文件,简单进行学习过程创建数据库和表,然后进行一些测试,进行简单测试判断.createdatabasezhaobshc......
  • mysql 判断字符串结尾
    mysql判断字符串结尾CREATETABLE`tbl_str`(`id`INTDEFAULTNULL,`Str`VARCHAR(30)DEFAULTNULL)INSERTINTO`mytest`.`tbl_str`(`id`,`Str`)VALUES('1','helloworld'),('2','mysqlstring'),('3','......
  • 性能篇:字符串性能优化不容小觑
    嗨,大家好!我是小米,一个热衷于技术分享的小伙伴。今天,我们一起来聊一聊在Java中如何优化字符串性能,探讨一些令人激动的方法,让你的程序在处理字符串时更加高效!为什么String设计为不可变性?首先,让我们谈谈为什么Java中的String被设计为不可变性。这并不是偶然的决定,而是经过深思熟虑的。......