select cast(cast('3.000000000' as dec(19,6)) as int) /* ----------- 3(1 行受影响)*/
cast(A as int)cast(cast(A as int) as varchar(10))
---还是这样 select ltrim(cast(cast(cast('3.000000000' as varchar(10)) as dec(19,6)) as int)) /* ----------- 3(1 行受影响)*/
--凑凑热闹 select int(3.000000000)
SELECT cast(cast(A as int) as varchar(10))
create table T(qty numeric(19,6)) insert into T values(3.000000) insert into T values(300.000000) insert into T values(301.000000) insert into T values(3.020000) insert into T values(3.001000) insert into T values(3.900000) insert into T values(3.888888) insert into T values(3.000001)select case when right(rtrim(qty),6)='000000' then left(rtrim(qty),len(rtrim(qty))-7) else reverse(stuff(reverse(rtrim(qty)),1, patindex('%[1-9]%',reverse(rtrim(qty)))-1,'') ) end as qty from T/* qty ---------------- 3 300 301 3.02 3.001 3.9 3.888888 3.000001 */ drop table T
/*
-----------
3(1 行受影响)*/
select ltrim(cast(cast(cast('3.000000000' as varchar(10)) as dec(19,6)) as int))
/*
-----------
3(1 行受影响)*/
select int(3.000000000)
insert into T values(3.000000)
insert into T values(300.000000)
insert into T values(301.000000)
insert into T values(3.020000)
insert into T values(3.001000)
insert into T values(3.900000)
insert into T values(3.888888)
insert into T values(3.000001)select case when right(rtrim(qty),6)='000000'
then left(rtrim(qty),len(rtrim(qty))-7)
else
reverse(stuff(reverse(rtrim(qty)),1, patindex('%[1-9]%',reverse(rtrim(qty)))-1,'') )
end as qty
from T/*
qty
----------------
3
300
301
3.02
3.001
3.9
3.888888
3.000001
*/
drop table T