2014-01-23 48 views
0

我有一個名爲quantity的列,其值爲1.00,2.00,1.5,2.5等。如果我想檢索值1.5,2.5以及所有其他類似的值,我該如何編寫查詢?在SQL 曾嘗試:如何從SQL列中檢索小數部分的值

SELECT quantity_billed FROM invoice_line_item WHERE quantity_billed != ROUND(quantity_billed) 

like操作它給像1.00的數值也。

+1

爲什麼SQL的類型這,[你的代碼在MySQL中對我來說工作正常](http://sqlfiddle.com/#!2/65f370/1/0) – OGHaza

回答

0

如何使用NOT LIKE('%.00')來獲得分數。不知道你正在使用哪個數據庫,所以你可能需要稍微修改,但這可以在MySql和SQL Server中使用。

0

%LIKE%僅適用於字符串,因此您應該將其轉換爲float或decimal的varchar.if數據。

SELECT quantity_billed FROM invoice_line_item WHERE轉換(VARCHAR,quantity_billed) LIKE '%1.5%'

+0

在MySQL中沒有必要進行轉換,可能會因數據庫引擎而異 – OGHaza

2

可以使用模函數,太:

SELECT quantity_billed 
FROM invoice_line_item 
WHERE quantity_billed MOD 1 <> 0 
+0

嗯,很好,didn不會意識到模塊會像這樣工作,比我提出的要簡單得多sted,但它需要!= 0,但OP的需求。 – OGHaza

+1

當我看到這個時刪除了我的答案。尼斯。 – Fred

+0

編輯我的答案使用「不等於」,謝謝。 – dnoeth

相關問題