2009-12-04 70 views
1

我有一個表,看起來像這樣的數據類型:我想知道是否有可能做這樣的事情,我被作爲施放順序如下SQL語法:鑄造存儲數據

id datatype  name value 
0  nvarchar(255) myName 'Paul' 
1  int    age  '30' 
2  float(53)  Custom1 0.5 
3  float(53)  Custom2 1.3 
4  float(53)  Custom3 2.7 

一個浮點數 - 我知道這是不正確的語法,但想知道這是否可以完成。

SELECT datatype, name, value FROM myTable 
ORDER BY (float)name 

在此先感謝。

+0

這是一個數據庫表中一個非常貧窮的設計。你不應該這樣做!你將會在性能和查詢方面遇到可怕的問題。這不是關係表應該使用的方式。 (對於幾乎任何條件下的數據類型,BTB浮點數是一個糟糕的選擇,因爲它會在計算中給出舍入誤差) – HLGEM 2009-12-04 16:34:25

回答

4

要轉換數據類型的SQL可以使用CAST or CONVERT

SELECT CAST('123' AS FLOAT), CONVERT(FLOAT, '123') 

但是,如果你的名字字段包含不能轉換爲有效的float值,你會得到一個錯誤。

例如

SELECT CAST('NotAValidFloat' AS FLOAT) 

會給你:

Msg 8114, Level 16, State 5, Line 1 
Error converting data type varchar to float.