sql 判断是否为数字
4个回答
2013-03-18
展开全部
不知道你是什么数据库啊。
以后你要询问有关数据库函数的问题, 最好明确说明一下啊。
Oracle 通过正则表达式判断, 字符串是否是数字。
可以使用正则表达式的方式来判断。
REGEXP_LIKE( 字段 , '(^[+-]?\d{0,}\.?\d{0,}$)'
来判断 是否是数字
SQL> SELECT NULL
2 FROM dual
3 WHERE REGEXP_LIKE(NULL,'(^[+-]?\d{0,}\.?\d{0,}$)');
未选定行
SQL>
SQL> SELECT 'Abc'
2 FROM dual
3 WHERE REGEXP_LIKE('Abc','(^[+-]?\d{0,}\.?\d{0,}$)');
未选定行
SQL>
SQL> SELECT '100'
2 FROM dual
3 WHERE REGEXP_LIKE('100','(^[+-]?\d{0,}\.?\d{0,}$)');
'10
---
100
SQL>
SQL> SELECT '-100'
2 FROM dual
3 WHERE REGEXP_LIKE('-100','(^[+-]?\d{0,}\.?\d{0,}$)');
'-10
----
-100
SQL>
SQL> SELECT '.01'
2 FROM dual
3 WHERE REGEXP_LIKE('.01','(^[+-]?\d{0,}\.?\d{0,}$)');
'.0
---
.01
SQL>
SQL> SELECT '1995-10-1'
2 FROM dual
3 WHERE REGEXP_LIKE('1995-10-1','(^[+-]?\d{0,}\.?\d{0,}$)');
未选定行
SQL>
SQL> SELECT '1/20/95'
2 FROM dual
3 WHERE REGEXP_LIKE('1/20/95','(^[+-]?\d{0,}\.?\d{0,}$)');
未选定行
SQL Server 有一个 ISNUMERIC 函数, 用于判断。
1> SELECT 'NULL' AS [DATA], ISNUMERIC(NULL) AS [ISNUMERIC]
2> UNION ALL
3> SELECT 'ABC' AS [DATA], ISNUMERIC('Abc') AS [ISNUMERIC]
4> UNION ALL
5> SELECT '100' AS [DATA], ISNUMERIC('100') AS [ISNUMERIC]
6> UNION ALL
7> SELECT '-100' AS [DATA], ISNUMERIC('-100') AS [ISNUMERIC]
8> UNION ALL
9> SELECT '.01' AS [DATA], ISNUMERIC('.01') AS [ISNUMERIC]
10> UNION ALL
11> SELECT '1995-10-1' AS [DATA], ISNUMERIC('1995-10-1') AS [ISNUMERI
C]
12> UNION ALL
13> SELECT '1/20/95' AS [DATA], ISNUMERIC('1/20/95') AS [ISNUMERIC]
14> UNION ALL
15> SELECT '1995-10-1 13:00' AS [DATA], ISNUMERIC('1995-10-1 13:00') A
S [ISNUMERIC]
16>
17> go
DATA ISNUMERIC
--------------- -----------
NULL 0
ABC 0
100 1
-100 1
.01 1
1995-10-1 0
1/20/95 0
1995-10-1 13:00 0
(8 行受影响)
以后你要询问有关数据库函数的问题, 最好明确说明一下啊。
Oracle 通过正则表达式判断, 字符串是否是数字。
可以使用正则表达式的方式来判断。
REGEXP_LIKE( 字段 , '(^[+-]?\d{0,}\.?\d{0,}$)'
来判断 是否是数字
SQL> SELECT NULL
2 FROM dual
3 WHERE REGEXP_LIKE(NULL,'(^[+-]?\d{0,}\.?\d{0,}$)');
未选定行
SQL>
SQL> SELECT 'Abc'
2 FROM dual
3 WHERE REGEXP_LIKE('Abc','(^[+-]?\d{0,}\.?\d{0,}$)');
未选定行
SQL>
SQL> SELECT '100'
2 FROM dual
3 WHERE REGEXP_LIKE('100','(^[+-]?\d{0,}\.?\d{0,}$)');
'10
---
100
SQL>
SQL> SELECT '-100'
2 FROM dual
3 WHERE REGEXP_LIKE('-100','(^[+-]?\d{0,}\.?\d{0,}$)');
'-10
----
-100
SQL>
SQL> SELECT '.01'
2 FROM dual
3 WHERE REGEXP_LIKE('.01','(^[+-]?\d{0,}\.?\d{0,}$)');
'.0
---
.01
SQL>
SQL> SELECT '1995-10-1'
2 FROM dual
3 WHERE REGEXP_LIKE('1995-10-1','(^[+-]?\d{0,}\.?\d{0,}$)');
未选定行
SQL>
SQL> SELECT '1/20/95'
2 FROM dual
3 WHERE REGEXP_LIKE('1/20/95','(^[+-]?\d{0,}\.?\d{0,}$)');
未选定行
SQL Server 有一个 ISNUMERIC 函数, 用于判断。
1> SELECT 'NULL' AS [DATA], ISNUMERIC(NULL) AS [ISNUMERIC]
2> UNION ALL
3> SELECT 'ABC' AS [DATA], ISNUMERIC('Abc') AS [ISNUMERIC]
4> UNION ALL
5> SELECT '100' AS [DATA], ISNUMERIC('100') AS [ISNUMERIC]
6> UNION ALL
7> SELECT '-100' AS [DATA], ISNUMERIC('-100') AS [ISNUMERIC]
8> UNION ALL
9> SELECT '.01' AS [DATA], ISNUMERIC('.01') AS [ISNUMERIC]
10> UNION ALL
11> SELECT '1995-10-1' AS [DATA], ISNUMERIC('1995-10-1') AS [ISNUMERI
C]
12> UNION ALL
13> SELECT '1/20/95' AS [DATA], ISNUMERIC('1/20/95') AS [ISNUMERIC]
14> UNION ALL
15> SELECT '1995-10-1 13:00' AS [DATA], ISNUMERIC('1995-10-1 13:00') A
S [ISNUMERIC]
16>
17> go
DATA ISNUMERIC
--------------- -----------
NULL 0
ABC 0
100 1
-100 1
.01 1
1995-10-1 0
1/20/95 0
1995-10-1 13:00 0
(8 行受影响)
展开全部
select ISNUMERIC(字段名) from 表名
或者
select ISNUMERIC(字符串)
返回1就是数字,返回0就不是数字
或者
select ISNUMERIC(字符串)
返回1就是数字,返回0就不是数字
来自:求助得到的回答
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道你是什么数据库啊。
以后你要询问有关数据库函数的问题, 最好明确说明一下啊。
Oracle 通过正则表达式判断, 字符串是否是数字。
可以使用正则表达式的方式来判断。
REGEXP_LIKE( 字段 , '(^[+-]?\d{0,}\.?\d{0,}$)'
来判断 是否是数字
以后你要询问有关数据库函数的问题, 最好明确说明一下啊。
Oracle 通过正则表达式判断, 字符串是否是数字。
可以使用正则表达式的方式来判断。
REGEXP_LIKE( 字段 , '(^[+-]?\d{0,}\.?\d{0,}$)'
来判断 是否是数字
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
甩个正则表达式,求指导
select case when regexp_like('+11.22','(^([0-9]?|\+|\-)(([0-9]*\.?[0-9]*[0-9]$)|([0-9]+\.$)))|(^\.[0-9]*[0-9]$)') then 1 else 0 end from dual
select case when regexp_like('+11.22','(^([0-9]?|\+|\-)(([0-9]*\.?[0-9]*[0-9]$)|([0-9]+\.$)))|(^\.[0-9]*[0-9]$)') then 1 else 0 end from dual
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询