используя define для сохранения результата оператора select - PullRequest
0 голосов
/ 02 ноября 2018

Добрый вечер, я хочу спросить о выполнимости чего-либо, поэтому у меня есть предложение select внутри этого выбора. Я хочу использовать подзапрос только один раз и сохранить его результат. Я пробовал что-то подобное, но я не знаю, что делать. любая помощь будет оценена

define A = Select somthing from TableA
Select case
          when A <0
          then 1
          else 2
          End as selectedcolumn   from TableB

Но я думаю, что определение используется только со статическими значениями

1 Ответ

0 голосов
/ 02 ноября 2018

Вы можете сделать это с помощью CTE, например,

WITH A AS 
  SELECT COUNT(*) c FROM TableA A 
  WHERE A.ColumnA = B.ColumnB 
    AND A.ColumnA2 = 0 
Select A.c As test 
  from TableA ta 
inner join TableB tb 
  on ta.columnA=tb.columnB 
cross join A

Это сделает A.c доступным в вашем запросе. Затем вы также можете сделать (select c from A) в любом месте вашего запроса, чтобы получить значение.

В качестве альтернативы, если вы запускаете скрипт в SQL * Plus, вы можете определить переменную столбца с помощью new_value:

COLUMN my_count NEW_VALUE my_constant
SELECT COUNT(*) my_count FROM TableA A 
  WHERE A.ColumnA = B.ColumnB 
    AND A.ColumnA2 = 0;

Затем вы можете обратиться к нему позже в вашем скрипте, используя строку подстановки &&my_constant:

Select case
      when &&my_constant <0
      then 1
      else 2
      End as selectedcolumn from TableB
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...