我的GridView的SelectCommand如下:
SELECT
pubName AS Publication,
COUNT(*) AS Total,
SUM(CAST (price as INT)) AS Price
FROM [SecureOrders]
WHERE DateTime >= DATEADD(day, -1, GETDATE())
GROUP BY pubName
我在做SUM AS Price位,我想在开头添加一个美元符号($),所以我的数据显示为109美元,而不是109.我尝试做'$'+ SUM,但当然这不起作用。有办法解决这个问题吗?
答案 0 :(得分:6)
与许多语言一样,加号是T-SQL中的重载运算符 - 加法或字符串连接。当操作中涉及的任何类型都是数字时,优先级将添加到数字。当然,您无法以有意义的方式添加字符串和数字,因此您会收到有关转换的错误。为了将值连接为字符串,您必须告诉SQL Server它们都是字符串。一种方法是使用CONVERT
:
..., '$' + CONVERT(VARCHAR(12), SUM(CAST(price AS INT))) AS Price FROM ...
请注意,在Denali中,您可以使用新的CONCAT
函数来避免转换,该函数将所有类型视为字符串,甚至将NULL
值视为空字符串。