美好的一天
这是我正在使用的代码,它给出了错误“将数据类型varchar转换为数字时出错”
select InvPrice.StockCode, InvPrice.SellingPrice,
SorContractPrice.StartDate, SorContractPrice.ExpiryDate, SorContractPrice.PriceMethod, SorContractPrice.FixedPrice, SorContractPrice.Discount1,InvPrice.SellingPrice
From InvPrice
Inner Join
SorContractPrice
on SorContractPrice.StockCode = InvPrice.StockCode
where SorContractPrice.PriceMethod IN
(case when SorContractPrice.PriceMethod = 'F' then SorContractPrice.FixedPrice
when SorContractPrice.PriceMethod = 'D' then InvPrice.SellingPrice - SorContractPrice.Discount1
else SorContractPrice.FixedPrice
end)
我需要从固定价格中扣除折扣,或者它应该保留为固定价格。
对不起我是sql的新手
非常感谢您的协助。
答案 0 :(得分:0)
您可以在其中一个要用于减去的项目上使用try_convert
。 convert
方法也有效。 [如果第一个项目不起作用,您可以在备用项目上尝试。但是如果你已经知道哪一个拥有varchar
值,那么就在那个值上使用它。]你基本上可以将它们转换为相同的值(浮点数或数值)
如果您需要有关如何使用这些内容的简短指南,请点击此处:http://sqlhints.com/2013/06/08/try_convert-sql-server-2012-built-in-conversion-function/
但请记住,如果它根本不能,它将不会为你转换它。如果它不能表示您用于varchar
的数据很可能不是数字等。
另外,@ KD评论说,cast
也有帮助。
希望这可以帮助你。