DB2 перенумеровывает значение из таблицы на основе заданного ввода - PullRequest
0 голосов
/ 08 января 2020

У меня есть сценарий, как, у меня есть два столбца

from   |    to
---------------
abc    |   pqr
pqr    |   xyz

from значение столбца назначено с to столбца. Я хотел перенумеровать данные входные данные из таблицы. Если я дал abc тогда, он должен вернуть мне xyz. Потому что abc назначается с pqr, а pqr назначается с xyz. поэтому xyz является перенумерованным значением для abc. Например, если я введу данные, мой запрос должен проверить все присвоенные значения и вернуть последнее присвоенное значение. Как я могу это сделать.

Я уже пробовал select tocolumn from table where fromcolumn='abc'

1 Ответ

0 голосов
/ 08 января 2020

Вы можете использовать Рекурсивное Общее Табличное Выражение (RCTE):

WITH 
/*
  TAB (from, to) AS 
(
VALUES
  ('abc', 'pqr')
, ('pqr', 'xyz')
)
,
*/
T (LEVEL, FROM) AS 
(
SELECT 0, TO FROM TAB WHERE FROM='abc'
  UNION ALL
SELECT T.LEVEL+1, A.TO FROM TAB A, T WHERE A.FROM = T.FROM
)
SELECT FROM 
FROM T 
ORDER BY LEVEL DESC 
FETCH FIRST 1 ROW ONLY;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...