读书人

SQL2000某列内容解决思路

发布时间: 2013-09-06 10:17:17 作者: rapoo

SQL2000某列内容
SQL2000某列内容
请问表test,列名 qty

如何判断qty列内容是否数值型?
[解决办法]

select *
from syscolumns
where id=OBJECT_ID('test')


select case when xtype=56 then 'int类型' else '' end
from syscolumns
where id=OBJECT_ID('test') and name='qty'

[解决办法]
上面上判断类型,下面是判断内容

select *
from test
where isnumeric(qty)=1


[解决办法]
引用:
这种方法好像也有点小问题,不一定要整数的呀,1.2, 1.33333,4,9,900000
就是判断是否数值型,不论是整数、小数 都应该判断为数值型。

--匹配模式中再加一个.即可。
CREATE TABLE #test(qty VARCHAR(100))
INSERT #test
SELECT '1' UNION ALL
SELECT '1.2' UNION ALL
SELECT 'abc'

SELECT *, 是否整数= CASE WHEN PATINDEX('%[^0-9.]%', CAST(qty AS VARCHAR(100))) = 0 THEN 'yes' ELSE 'no' end
FROM #TEST
/*
qty是否整数
1yes
1.2yes
abcno
*/

读书人网 >SQL Server

热点推荐