我正在使用价目表,并且我正在尝试在价值的开头添加一个£。这是Oracle 11g数据库所必需的。
to_char('£' + (case when web_cost.cost is null then 0 else
round(web_cost.cost,2) end)) as unitcost
web_cost.cost应以下列格式生成值; 11.50,或0或空值可能。
上面的查询给出了无效的数字错误,我甚至在这段代码的每一部分都尝试过to_char,但仍然没有运气。
这是我的查询中唯一一部分,目前无效,有什么想法吗?
答案 0 :(得分:2)
使用格式为TO_CHAR
的{{1}}来显示货币。如果您的默认货币不是L
,那么您可以提供第3个参数来设置£
:
Oracle 11g R2架构设置:
NLS_CURRENCY
查询1 :
CREATE TABLE web_cost ( cost ) AS
SELECT 1234.567 FROM DUAL UNION ALL
SELECT 98765 FROM DUAL UNION ALL
SELECT 34567.8901 FROM DUAL UNION ALL
SELECT NULL FROM DUAL;
<强> Results 强>:
SELECT TO_CHAR(
COALESCE( cost, 0 ),
'FML999990D00',
'NLS_CURRENCY=£'
) AS unitcost
FROM web_cost
答案 1 :(得分:0)
您应该使用concat ||
加入字符串
select '£' || to_char(case when web_cost.cost is null then 0 else
round(web_cost.cost,2) end)) as unitcost