Oracle数据库,条件列

问题描述 投票:0回答:1

不确定从哪里开始解决这个问题。还是我应该用谷歌搜索。

我有巨大的桌子,至少有几十万行。列之一应为价格,但以客户货币为单位。可用数据为

1. Price data in EUR
2. Package with function to get exchange rate

当然,汇率会经常更新,首先获取行,然后检查客户是否使用欧元,否则,再次获取汇率信息似乎是个坏主意。

还有许多客户将使用EUR,因此始终以相同的查询检查汇率可能会导致无用的开销。

我的[[第一个想法是获取价格和客户数据(无论如何都需要),然后如果客户使用的货币与EUR不同,我将进行另一个查询。

第二个想法

最初是要让餐桌巫婆以客户货币表示正确的价格。也许使用Oracle函数(我已经拥有了)我认为,第二种方法是“更正确”的实现,但是我不知道如何使用包函数来查看一列。

还有更好的方法,还是我应该选择其中一种?

sql oracle view
1个回答
1
投票
正如您所说的,汇率经常更新,您将始终需要更新的货币值,所以我的建议是创建VIEW并将其用作表格,以用于您的应用程序中需要的任何位置。

create or replace view your_view_name as select <column_list>, case when currency = 'EUR' then price else price*conversion_rate end as price from <both of your tables with join>

干杯!
© www.soinside.com 2019 - 2024. All rights reserved.