SQL语法:转换存储为数据的数据类型

时间:2009-12-04 09:19:15

标签: sql-server sql-server-2005 tsql sql-server-2008

我有一个看起来像这样的表:

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

提前致谢。

1 个答案:

答案 0 :(得分:4)

要在SQL中转换数据类型,可以使用CAST or CONVERT

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

但是如果你的名字段包含一个无法转换为有效浮点数的值,你就会收到错误。

e.g。

SELECT CAST('NotAValidFloat' AS FLOAT)

会给你:

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