0

SQL Server 2008 の列からすべての小数を削除するにはどうすればよいですか?

X_Coordがあり、値を含む 3 つの行がある場合、最後の整数の後に小数点以下がないようにするにはどうすればよいでしょうか?

たとえば、テーブルの名前RCMPが で、列が以下であるとします。

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

単一のクエリで小数を削除するにはどうすればよいですか?

試してみROUNDましたが、結果として値が ie のように表示され5588790.00000ます。

次のように表示したい: 5588790.

4

1 に答える 1

0

10 進数データ型を整数にキャストします。

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 に答える