0

如何从 SQL Server 2008 的列中删除所有小数?

如果我有一列X_Coord并且有三行的值,我将如何修剪它以便在最后一个整数之后没有小数?

例如,假设我的表名为RCMP,列如下:

X_Coord
---------------
- 5588790.77000
- 5588873.79000
- 5588943.71000

如何在单个查询中删除小数?

我试过ROUND了,但最终使值显示为 ie 5588790.00000

我希望它显示为:5588790

4

1 回答 1

0

将十进制数据类型转换为整数。

SELECT CAST(x_coord AS INT)
FROM dbo.RMCP

编辑: 我更新了代码以反映如何更改数据类型。这是一个很大的影响变化,所以要非常小心。我会敦促您在开发中对此进行测试。

if object_id('#Demo') is not null
drop table #Demo;
go

create table #Demo(x_coord decimal(12,5))
insert into #Demo values(5588790.77000),(5588873.79000),(5588943.71000)

alter table #Demo
ALTER COLUMN x_coord INT NULL

select *
from #Demo
GO

- 或者这有效

if object_id('#Demo') is not null
drop table #Demo;
go

create table #Demo(x_coord decimal(12,5))
insert into #Demo values(5588790.77000),(5588873.79000),(5588943.71000)

alter table #Demo
add new_x_coord INT NULL

UPDATE #Demo SET new_x_coord = CAST(x_coord AS INT)
GO

--**********************  dont drop anything until you confirm the data is good!!!!!!!!!!!!! and test this in development *************************************
ALTER TABLE #Demo
DROP COLUMN x_coord

exec sp_rename 'dbo.#Demo.new_x_coord','x_coord','COLUMN'

select *
from #Demo
GO
于 2013-07-26T15:18:18.517 回答