我正在尝试通过选择如下值来创建一个固定宽度的文件:
SELECT distinct SubStr(RPad(InitCap(p.namelast),50,' '),1,50)
|| SubStr(RPad(InitCap(p.namefirst),50,' '),1,50)
|| SubStr(RPad(p.house ||' ' || p.street || ' ' ||p.streettype,50,' '),1,50)
||' '
||SubStr(RPad(InitCap(p.city),35,' '),1,35)
||NVL(SubStr(RPad(p.province,2,'0'),1,2),' ')
||NVL(SubStr(RPad(p.postal,5,'0'),1,5),' ')
以上工作正常。但是,我还需要考虑这样一个事实,即地址要么在我上面的字段中解析(p.house、p.street、p.streettype ...),要么在 ADDRESS1 和 ADDRESS2 中找到。但是 ADDRESS 2 包含城市状态和 zip,需要对其进行解析。
我可以通过使用 NVL 来做到这一点吗?我觉得如果我使用 NVL 和 SUBSTR 输出我需要的值,它可以工作。但我不确定语法。
ADDRESS1 和 ADDRESS2 中的数据分别如下所示:
123 boom drive|MONTGOMERY AL 45777