Teradata 中的 IF ELSE 语句
IF ELSE statement in Teradata
我有两个 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 代码?
提前致谢!
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
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 是保留字。
我有两个 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 代码?
提前致谢!
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
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 是保留字。