2017-03-31 113 views
1

我正在尝试查找与美元金额(例如200.0000,5.0000,1350.0000)相关的交易。在SQL中获取一个美元金额

SQL服务器金额列是NUMERIC(38.4)类型。

我该如何转换它,我需要申请什么功能?

+0

在美国200.0000因为我们使用的'无厘头.'作为小数分隔符。这使我不确定你想要什么。你不想要任何分数? – Hogan

+0

这些是美元金额.... $ 200.00,$ 5.00和$ 1350.00。列名是金额 –

+0

所以你想美元和美分?我 – Hogan

回答

4

查找值

Select * 
From YourTable 
where Val = floor(Val) 

编辑 - 示例

Declare @YourTable table (Val decimal(10,4)) 
Insert Into @YourTable values 
(100.25), 
(5.00), 
(100.00) 

Select * 
From @YourTable 
where Val/100 = floor(Val/100) 

返回

100.0000 
+0

谢谢约翰。如果还需要最后两位数字是零如$ 200.00? –

+0

@SirOliver其中Val/100 = floor(Val/100) –

+0

不,您需要CAST(字段为NUMERIC(x,2)),它会将您指向小数点右边的数字。 – Hogan

2

您可以检查列的截断。

Select * 
From Table 
Where Amount = Cast(Amount as Int) 
0

不是100%肯定,你想要什么,但如果你不希望任何部分,然后只投一个整数这样的:没有小数

SELECT CAST(COLUMN_NAME_YOU_DID_NOT_SAY AS INTEGER) AS Result 
FROM TABLE_NAME_YOU_DID_NOT_SAY 
相关问题