将 Varchar 转换为金钱

Convert Varchar To Money

我正在尝试将 varchar 列转换为货币,但我一直收到此错误

Implicit conversion from data type varchar to money is not allowed. Use the CONVERT function to run this query.

我是不是像错误提示的那样使用转换函数?

Select
    tellerID,
    SUM(CASE 
           WHEN CONVERT(money, value1) IS NULL THEN '0' 
           ELSE CONVERT(money, value1) 
        END) AS [Total Value 1]
From 
    intakedrawer
Group By 
    tellerID
Order By 
    tellerID

这样试试:

Select
tellerID,
SUM(CASE WHEN IsNumeric(value1) = 0 THEN 0 
       ELSE CAST(value1 AS decimal(18, 2)) 
END) as [Total Value 1]
From intakedrawer
Group By tellerID
Order By tellerID

如果您使用的是 SQL Server 2012 或更高版本,您也可以使用 TRY_CONVERT。如果转换不起作用,它 returns NULL。

SELECT
 tellerid,
 SUM(TRY_CONVERT(MONEY, value1)) AS [Total Value 1]
FROM intakedrawer
GROUP BY tellerid
ORDER BY tellerid;

有个SQLFiddlehere.