我一直试图想出一种方法,我可以使用列上的函数来获取某个输出(在列中),然后另外使用我之前从另一个输出的列上的另一个函数柱。听起来很混乱吧?让我向您展示一个让它更容易理解的例子。
SELECT PAGE, substr(PAGE, 1, instr(PAGE, ';', -1) - 1) PAGE2, substr(PAGE2, instr(PAGE2, '/', -1)+1) PAGE_NEW
FROM
SNETP001.INGACCESS_VIEWS INGACCESS_VIEWS,
SNETP001.INGACCESS_PAGEID INGACCESS_PAGEID
PAGE是表格中的原始列 PAGE2是使用SUBSTR和嵌套INSTR函数创建的列 PAGE_NEW是我想在PAGE2列上运行的附加列。
对此有何想法?如果需要,我可以尝试提供其他信息。
谢谢, 莱恩
答案 0 :(得分:1)
您可以使用子查询来执行此操作:
Select PAGE, PAGE2, substr(PAGE2, instr(PAGE2, '/', -1)+1) PAGE_NEW
FROM
( SELECT PAGE, substr(PAGE, 1, instr(PAGE, ';', -1) - 1) PAGE2
FROM
SNETP001.INGACCESS_VIEWS INGACCESS_VIEWS,
SNETP001.INGACCESS_PAGEID INGACCESS_PAGEID)
或者您可以在PAGE列上编写两次substr函数,如下所示:
SELECT PAGE, substr(PAGE, 1, instr(PAGE, ';', -1) - 1) PAGE2,
substr(substr(PAGE, 1, instr(PAGE, ';', -1) - 1),
instr(substr(PAGE, 1, instr(PAGE, ';', -1) - 1), '/', -1)+1) PAGE_NEW
FROM
SNETP001.INGACCESS_VIEWS INGACCESS_VIEWS,
SNETP001.INGACCESS_PAGEID INGACCESS_PAGEID
希望我在你的请求中没有错过任何内容。
Vishad