我的数据库中有一个包含地址的表。街道编号、单元编号、街道名称、街道方向和省份有单独的字段。我想将所有这些列合并为一个列,以便生成一个地址,然后将其与CSV数据文件中的传入地址进行比较。如果地址匹配,则为它们分配与数据库表中相应地址相同的地址id。
我是塔伦德的新手,我不知道如何解决这个问题。
我不认识塔伦德。
但是,创建一个视图(在数据库中(,根据需要显示地址,然后将视图的ADDRESS
列与CSV文件进行比较,怎么样?类似这样的东西(大部分是盲目猜测,因为我不知道你提到的栏真正代表了什么(:
这是您当前拥有的表格:
SQL> select * from address;
STREET_NUMBER UNIT_NUMBER STREET_NAME STREE PROVINC
------------- ----------- ----------- ----- -------
1 2 Main street North Central
2 2 Zara street South West
创建视图;其CCD_ 2列格式应尽可能与CSV文件的值匹配。我可能没能做到这一点,但由于你没有提供任何样本数据,我希望这个想法本身将是一个很好的起点:
SQL> create or replace view v_address as
2 select street_number,
3 unit_number,
4 -- concatenate next 3 columns
5 street_name ||', '|| street_direction ||', '|| province as full_addres
6 from address;
View created.
SQL> select * From v_address;
STREET_NUMBER UNIT_NUMBER FULL_ADDRESS
------------- ----------- ---------------------------
1 2 Main street, North, Central
2 2 Zara street, South, West
SQL>
最后,将full_address
和CSV文件的值进行比较。