1

我有两个 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

您能否建议一个 TERADATA SQL 代码?

提前致谢!

4

2 回答 2

1
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 是一个保留字。

于 2018-11-29T03:32:36.127 回答
0

SQL 助手支持旧的 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
于 2018-11-28T18:14:12.690 回答