ЕСЛИ ДАЛЕЕ заявление в Терадате - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть два оператора SQL SQL 1 и SQL 2. Далее, я хочу запустить их в соответствии с приведенной ниже логикой,

SELECT * 
FROM MY_TABLE
WHERE COL1 > 0;

If ACTIVITY_COUNT = 0 THEN RUN SQL 1     ----- if records are present then run sql 1

ELSE 

RUN SQL 2    ----- if records are not present the run sql 2

Не могли бы вы предложить SQL-код TERADATA?

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018
CREATE PROCEDURE activity_proc(OUT out_res VARCHAR(30))
BEGIN
  DECLARE l_cnt  int;
  SELECT n_activity_count INTO l_cnt FROM My_Table;

  IF l_cnt=0 THEN
    select  'No activity' into out_res;
  ELSE  
    select  'Activity count: ' || cast(l_cnt as varchar(10)) into out_res;
  END IF;   

END;

Также имейте в виду, что activity_count - зарезервированное слово.

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

SQL Assistant поддерживает старый синтаксис BTEQ:

SELECT * 
FROM MY_TABLE
WHERE COL1 > 0;

.IF ACTIVITYCOUNT = 0 THEN .GOTO l2; -- no result, skip SQL 1

SQL 1     ----- if records are present then run sql 1

.EXIT;  -- don't run SQL2

.LABEL l2;

SQL 2    ----- if records are not present the run sql 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...