将 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.
我正在尝试将 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.