当前位置:首页 » 编程语言 » sql判定字符串为数字
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql判定字符串为数字

发布时间: 2022-06-26 02:18:42

1. sql如何在字符串里判断是否有数字或者字母

判断是否含有字母
select PATINDEX('%[A-Za-z]%', ‘ads23432')=0

(如果存在字母,结果>1)
判断是否含有数字
PATINDEX('%[0-9]%', ‘234sdf')=0

(如果存在数字,结果>1)

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

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

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

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

(2)sql判定字符串为数字扩展阅读:

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

3. SQL 中怎么把字符串转换为数字

具体方法如下:

  1. 将字符的数字转成数字,比如'0'转成0可以直接用加法来实现;

    例如:将pony表中的d 进行排序,可d的定义为varchar,可以这样解决;

    select * from pony order by (d+0);

  2. 在进行ifnull处理时,比如 ifnull(a/b,'0') 这样就会导致 a/b成了字符串,因此需要把'0'改成0,即可解决此困扰;

  3. 比较数字和varchar时,比如a=11,b="11ddddd";

    则 select 11="11ddddd"相等;

    若绝对比较可以这样:

    select binary 11 =binary "11ddddd";

  4. 字符集转换 : CONVERT(xxx USING gb2312);

    类型转换和SQL Server一样,就是类型参数有点点不同 : CAST(xxx AS 类型),CONVERT(xxx,类型);

    类型必须用下列的类型:BINARY、CHAR()、DATE、TIME、DATETIME、DECIMAL、SIGNED、UNSIGNED。

4. SQL 中怎么把字符串转换为数字

具体方法如下:
将字符的数字转成数字,比如'0'转成0可以直接用加法来实现;
例如:将pony表中的d
进行排序,可d的定义为varchar,可以这样解决;
select
*
from
pony
order
by
(d+0);
在进行ifnull处理时,比如
ifnull(a/b,'0')
这样就会导致
a/b成了字符串,因此需要把'0'改成0,即可解决此困扰;
比较数字和varchar时,比如a=11,b="11ddddd";

select
11="11ddddd"相等;
若绝对比较可以这样:
select
binary
11
=binary
"11ddddd";
字符集转换
:
CONVERT(xxx
USING
gb2312);
类型转换和SQL
Server一样,就是类型参数有点点不同
:
CAST(xxx
AS
类型),CONVERT(xxx,类型);
类型必须用下列的类型:BINARY、CHAR()、DATE、TIME、DATETIME、DECIMAL、SIGNED、UNSIGNED。

5. sqlserver中如何把字符串转换成数字

SQL Server中的数值类型分为两种,一种是精确的数值类型,具体的数据类型有:bit、tinyint、smallint、int、bigint、smallmoney、money和decimal,这些数据类型能够精确的表明某以数值;另一种是近似的数值类型,具体就是float和real。浮点数据为近似值,因此,并非数据类型范围内的所有值都能精确地表示。
有些时候我们需要将这些数值类型转换为字符串类型,用到的转换函数就是cast和convert,这两个函数的作用都是进行类型转换,只不过语法格式不同。据说在转换时还是有一定的区别的,不过我个人更习惯于使用convert函数,应该这个函数一方面更像是个函数的语法,另一方面在做时间和数值转换成字符串时还可以指定转换的格式。
对于精确数值的数据类型,转换出来的字符串就是我们存储的数值。比如:
declare @i intset @i=123456789
print 'test:'+convert(varchar(20),@i)
输出就是:test:123456789
而如果对于近似数值的数据类型,那么可就没有那么简单了。
declare @i floatset @i=123456789
print 'test:'+convert(varchar(20),@i)
输出结果:test:1.23457e+008
输出的结果是使用科学计数法来表示的,再看看可否通过指定转换样式来指定不使用科学计数法呢?帮助文档中说到float 或 real 转换为字符数据时的 style 值:
0(默认值)最大为 6 位数。根据需要使用科学记数法。
1 始终为 8 位值。始终使用科学记数法。
2 始终为 16 位值。始终使用科学记数法。
我们的值是123456789,超过了6位数.所以不管是0还是1,2结果都会使用科学计数法来表示。那么要怎么样才能将我们的数据不转换成科学计数法而输出呢?比较简单的办法就是将近似数据转换为精确数据,然后再将精确数据转换成字符串。
同样以上面的例子为例, 进行两次数据类型的转换如下:
declare @i floatset @i=123456789
print 'test:'+convert(varchar(20),convert(int,@i))
输出:test:123456789如果是有小数,那么我们要转换出小数位的话,可以转换成decimal,转换出的小数位数在定义decimal时指定。比如要输出4位小数,那么转换代码是:
declare @i floatset @i=123456789.12
print 'test:'+convert(varchar(20),convert(decimal(18,4),@i))
输出:test:123456789.1200

6. 怎样在sql里面判断一个字符串是否可以转换为数字

CREATE FUNCTION [dbo].[fn_IsNumberic]
(
@str nvarchar(max)
)
RETURNS int
AS
BEGIN
declare @res int
set @res=case when ISNUMERIC(isnull(@str,0))=1 then
case when PATINDEX('%[^0-9.]%',rtrim(ltrim(isnull(@str,0))))=0 then 1
end
end
return isnull(@res,0)
END
GO

7. 在SQL语句里面如何将字符型转换成数字型

先检查金额列的数据是否都符合小数规范,用cast(金额 asdecimal(10,4))>500或者

convert(decimal(10,4),金额)>500

注:decimal的长度和小数位数根据自己需要设定

sql中将字符串数字转换成数字:

方法一:SELECT CAST('123' AS SIGNEDinteger);

方法二:SELECT CONVERT('123',SIGNED);

方法三:SELECT '123'+0;

(7)sql判定字符串为数字扩展阅读:

能将字符型转换成数字型,就能将数字转化为字符,对于精确数值的数据类型,转换出来的字符串就是我们存储的数值。比如:

declare @i int

set @i=123456789

print 'test:'+convert(varchar(20),@i)

输出就是:test:123456789

而如果对于近似数值的数据类型,那么可就没有那么简单了。

declare @i float

set @i=123456789

print 'test:'+convert(varchar(20),@i)

输出结果:test:1.23457e+008

8. sql判断一个字符串是否是数字

如果是ORACLE,可以:
select translate(str,'x1234567890','x') from al,如果得到的是空则是数字,如果不是空,则是带字符串的。

9. 怎么用SQL判断字段值是否为字符或者数字

在不改变你SQL的基础上再加一个 LEFT(col1,1)<>'-'
select * from tb
where
ISNUMERIC(col1)>0 and LEFT(col1,1)<>'-'
---
ISNUMERIC(col1)>0这个本身就将资料过滤为只有数字(正数或负数,没有你说的其他符号了),在其基础上再将负数的情况过滤掉就OK了