日期:2014-05-17 浏览次数:20722 次
select isnumeric('abc') 不是数字,isnumeric('23') 是数字;
------解决方案--------------------
ISNUMERIC ( expression )
------解决方案--------------------
isnumeric()
------解决方案--------------------
/*
网上经常有些博文说isnumeric不可靠。
例如:
http://blog.csdn.net/cityeremite/article/details/2154781
例如:
http://www.cnblogs.com/kokyu/archive/2012/07/23/2604492.html
等等很多...
我用SQL SERVER 2005做个测试。
*/
select @@version
/*
Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86)
Oct 14 2005 00:33:37
Copyright (c) 1988-2005 Microsoft Corporation
Developer Edition on Windows NT 5.1 (Build 2600: Service Pack 2)
*/
--> 测试数据: @T
declare @T table (col varchar(10))
insert into @T
select '2.1' union all
select '2.1-' union all
select '2,111' union all
select '+21' union all
select '+2.1' union all
select '-2.1' union all
select '-22' union all
select '2-2' union all
select '234a234' union all
select '111aaa' union all
select 'a1'
select * from @T where ISNUMERIC(col)=1
/*
col
----------
2.1
2,111
+21
+2.1
-2.1
-22
*/
--说明isnumeric 是可以判断正负号和千分号和小数点的。