SQL转换语句
我需要有关SQL convert语句的帮助。我有NetQuanity(masterTable),它是一个varchar(15),我有另一个带有购买价格的表(PO表),它是货币。当我在SQL视图中尝试将它们相乘时,会出现以下错误:SQL转换语句,sql,sql-server,Sql,Sql Server,我需要有关SQL convert语句的帮助。我有NetQuanity(masterTable),它是一个varchar(15),我有另一个带有购买价格的表(PO表),它是货币。当我在SQL视图中尝试将它们相乘时,会出现以下错误: 如果字段是VARCHAR,则需要在操作之前强制转换为适当的数据类型。e、 g CAST(myVarCharField as INT) * myIntField 但是,要预先警告,如果您试图将此字段强制转换为数字数据类型,而它不是数字,那么您将处于同一条船上 我建议在您
如果字段是VARCHAR,则需要在操作之前强制转换为适当的数据类型。e、 g
CAST(myVarCharField as INT) * myIntField
但是,要预先警告,如果您试图将此字段强制转换为数字数据类型,而它不是数字,那么您将处于同一条船上
我建议在您的示例中使用CAST
overCONVERT
,原因如下:
相关:如果您的字段是VARCHAR,则需要在操作之前强制转换为适当的数据类型。e、 g
CAST(myVarCharField as INT) * myIntField
但是,要预先警告,如果您试图将此字段强制转换为数字数据类型,而它不是数字,那么您将处于同一条船上
我建议在您的示例中使用CAST
overCONVERT
,原因如下:
相关:是否可以尝试使用
转换功能<代码>转换(货币、净数量)
是否可以尝试使用转换
功能<代码>转换(货币、净数量)首先,您有一个数据定义问题。
第一件事是消除主表中的任何非数字项
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值的语法不正确。