【发布时间】:2017-08-23 10:11:18
【问题描述】:
我有一个表,其中包含一个 VARCHAR 列,其中填充了诸如
之类的值员工无权享受 SSP,因为他们的平均每周收入低于 LEL。平均收入:44.13750 英镑
我正在尝试提取 £ 符号后的值,所以我尝试了:
SELECT
ClientId
, Max(PayPeriod) As PeriodNo
, CASE WHEN MAX(Comment) like '%£%' THEN
CAST(MAX(right(Comment, charindex('£', reverse(Comment))-1) )AS DECIMAL(5,2))
ELSE 0 END AS AvgEarnings2
FROM
t_PayrollSSPEmployeeComment
WHERE
comment like '%LEL%' AND comment like '%£%'
GROUP BY
ClientID
我只想检索该值,以便可以将其转换为十进制,例如 110.25
但我收到一个错误
Error converting data type varchar to numeric.
我可以获取带有或不带有 £ 符号的值,但我需要将其转换为正确的小数位数才能生成报告。 我在这里做错了什么?
【问题讨论】:
-
听起来你的字符串值中有一些非法字符。也许你的小数点?
标签: sql-server tsql decimal varchar