SQL转换语句

时间:2011-12-02 20:38:02

标签: sql sql-server

我需要SQL转换语句的帮助。我有NetQuanity(masterTable),这是一个varchar(15),我有另一张桌子,购买价格(PO TABLE),这是钱。当我尝试在SQL视图中将它们相乘时,会给出错误:

enter image description here

3 个答案:

答案 0 :(得分:4)

如果您的字段是VARCHAR,则需要在操作之前将CAST转换为适当的数据类型。 e.g。

CAST(myVarCharField as INT) * myIntField

但要预先警告,如果您尝试将此字段设为数字数据类型并且它不是数字,那么您将在同一条船上。

我建议您在示例中使用CAST而不是CONVERT,原因如下:

相关:T-SQL Cast versus Convert

答案 1 :(得分:2)

也许尝试使用CONVERT功能? CONVERT(money,NetQuantity)

答案 2 :(得分:0)

首先,您遇到了数据定义问题。 第一件事是消除主表中的任何非数字条目。

SELECT whatever FROM masterTable WHERE ISNUMERIC(NetQuanity)=1

下一步是将其作为计算中的子查询 在此查询中,使用CONVERT或CAST将有效数量转换为整数。 即。

CONVERT(INT, NetQuantity)