sql语句如何判断字段是否为数字?

sql数据库有个文本字段A,其中保存有数字或字符,数字是以4位字符显示,比如0011,0046,如果不是数字就会以“-”或“\”等字符填充字段,如何判断是否为数字呢,isnumeric函数会把“-”字符判断为数字,如何解决?
一楼的这个“cast(a as integer) >0”似乎可行,不知道有没有啥隐患?
二楼的有个问题,因为我不知道填充的内容是多少个‘-’以及‘-’的位置,而且可能还有其他各种填充符号,比如'%'或'&',单纯去判断某种符号可能存在漏洞
最新回答
爱情的模样

2021-09-19 03:08:55

sql语句判断字段是否为数字可以参考下面的例子:

select * from biao where isnumeric(ziduan)=0 查非数回字答

select * from biao where isnumeric(ziduan)=1 查纯数字

扩展资料:

SQL参考语句

查找:select * from table1 where field1 like ’%value1%’ (所有包含‘value1’这个模式的字符串)

排序:select * from table1 order by field1,field2 [desc]

求和:select sum(field1) as sumvalue from table1

平均:select avg(field1) as avgvalue from table1

参考资料来源:

百度百科-结构化查询语言

Mentos曼妥思

2021-04-21 17:04:32

SQL语言,是结构化查询语言(Structured Query Language)的简称。SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

SQL语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的结构化查询语言作为数据输入与管理的接口。SQL语言语句可以嵌套,这使他具有极大的灵活性和强大的功能。

折叠

sql server的sql语句怎么判断一个字段是否为数字? 

sql="select * from  biao where isnumeric(ziduan)=true" 。

号订婚

2023-05-21 00:14:10

--在不改变你SQL的基础上再加一个 LEFT(col1,1)<>'-'
select * from tb
where
ISNUMERIC(col1)>0 and LEFT(col1,1)<>'-'

---
ISNUMERIC(col1)>0这个本身就将资料过滤为只有数字(正数或负数,没有你说的其他符号了),在其基础上再将负数的情况过滤掉就OK了
魔仙女王

2023-03-26 04:16:23

楼主应该是用SQL Server?

SELECT CASE WHEN A LIKE '%[^0-9]%' THEN '非数字' ELSE '数字' END FROM TableName
--显示用

条件用:
SELECT * FROM TableName WHERE A LIKE '%[^0-9]%'--非数字

SELECT * FROM TableName WHERE A NOT LIKE '%[^0-9]%'--数字
摘星入眼

2022-05-17 17:10:50

select * from biao where isnumeric(ziduan)=0 查非数字
select * from biao where isnumeric(ziduan)=1 查纯数字