SQL转换语句

SQL转换语句,sql,sql-server,Sql,Sql Server,我需要有关SQL convert语句的帮助。我有NetQuanity(masterTable),它是一个varchar(15),我有另一个带有购买价格的表(PO表),它是货币。当我在SQL视图中尝试将它们相乘时,会出现以下错误: 如果字段是VARCHAR,则需要在操作之前强制转换为适当的数据类型。e、 g CAST(myVarCharField as INT) * myIntField 但是,要预先警告,如果您试图将此字段强制转换为数字数据类型,而它不是数字,那么您将处于同一条船上 我建议在您

我需要有关SQL convert语句的帮助。我有NetQuanity(masterTable),它是一个varchar(15),我有另一个带有购买价格的表(PO表),它是货币。当我在SQL视图中尝试将它们相乘时,会出现以下错误:


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

CAST(myVarCharField as INT) * myIntField
但是,要预先警告,如果您试图将此字段强制转换为数字数据类型,而它不是数字,那么您将处于同一条船上

我建议在您的示例中使用
CAST
over
CONVERT
,原因如下:


相关:

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

CAST(myVarCharField as INT) * myIntField
但是,要预先警告,如果您试图将此字段强制转换为数字数据类型,而它不是数字,那么您将处于同一条船上

我建议在您的示例中使用
CAST
over
CONVERT
,原因如下:


相关:

是否可以尝试使用
转换功能<代码>转换(货币、净数量)

是否可以尝试使用
转换
功能<代码>转换(货币、净数量)

首先,您有一个数据定义问题。 第一件事是消除主表中的任何非数字项

SELECT whatever FROM masterTable WHERE ISNUMERIC(NetQuanity)=1
下一步是将其作为子查询包含在计算中。
在此查询中,使用CONVERT或CAST将有效数量转换为整数。 i、 e


首先,您有一个数据定义问题。 第一件事是消除主表中的任何非数字项

SELECT whatever FROM masterTable WHERE ISNUMERIC(NetQuanity)=1
下一步是将其作为子查询包含在计算中。
在此查询中,使用CONVERT或CAST将有效数量转换为整数。 i、 e


NetQuanity(masterTable)是一个varchar(15)-为什么?是否需要将一般数值存储为字符串?varchar(15)列中有什么类型的数据<代码>'xyz'?数据是否可转换为数字类型?真正的解决方法是修复您的结构。用于数学计算的数值数据永远不应存储在varchar字段中。您不希望每次需要按预期使用数据时都进行昂贵的转换。有时需要重构数据库,这就是其中之一。NetQuanity(masterTable)是一个varchar(15)-为什么?是否需要将一般数值存储为字符串?varchar(15)列中有什么类型的数据<代码>'xyz'?数据是否可转换为数字类型?真正的解决方法是修复您的结构。用于数学计算的数值数据永远不应存储在varchar字段中。您不希望每次需要按预期使用数据时都进行昂贵的转换。有时需要重构数据库,这是其中之一。此外,请确保
varcharcolumn
中没有会中断转换的无效字符。在这种情况下,您将得到类似于
无法将字符值转换为货币的内容。char值的语法不正确。
此外,请确保
varcharcolumn
中没有会中断转换的无效字符。在这种情况下,您将得到类似于
无法将字符值转换为货币的内容。char值的语法不正确。