dbo.FXDryBulbTemp
---------------
0239
0240
0200
0000
-080
-082
-092
-093
-110
上面这个表的数据类型是varchar(50)
========================
DryBulbTemp
---------------
239
240
200
0
-80
-82
-92
-93
-110
我想去除左边的0,如果是0000,就变成0,并且转换成int数据类型。
---------------
0239
0240
0200
0000
-080
-082
-092
-093
-110
上面这个表的数据类型是varchar(50)
========================
DryBulbTemp
---------------
239
240
200
0
-80
-82
-92
-93
-110
我想去除左边的0,如果是0000,就变成0,并且转换成int数据类型。
select cast(DryBulbTemp as int) from fx where isnumeric(DryBulbTemp)=1 --加where过滤掉非数字的记录
-- Author : liangCK 梁爱兰
-- Comment: 小梁 爱 兰儿
-- Date : 2009-08-14 15:43:10
-------------------------------------
--> 生成测试数据: @t
DECLARE @t TABLE (DryBulbTemp VARCHAR(4))
INSERT INTO @t
SELECT '0239' UNION ALL
SELECT '0240' UNION ALL
SELECT '0200' UNION ALL
SELECT '0000' UNION ALL
SELECT '-080' UNION ALL
SELECT '-082' UNION ALL
SELECT '-092' UNION ALL
SELECT '-093' UNION ALL
SELECT '-110'--SQL查询如下:SELECT
SIGN(CAST(DryBulbTemp AS INT)) * ABS(CAST(DryBulbTemp AS INT))
FROM @T/*
-----------
239
240
200
0
-80
-82
-92
-93
-110(9 行受影响)*/
CAST(DryBulbTemp AS INT)
想复杂了 而且还错误了 NND
CAST(DryBulbTemp AS INT)