我正在学习和新的db2。
以下是我正在努力实现的步骤:
*第一步:创建一个存储过程,将数据插入表中,插入后
*步骤2:在同一个表上运行select,获取值并粘贴到屏幕/输出上。
第1步完成并能够将数据插入到表中。现在我需要帮助执行select语句并打印结果..我正在尝试将此select语句放在插入后的同一存储过程中。
- 执行存储过程
- 插入表中
- 等待1秒
- 从它插入的同一个表中选择数据。
- (有点逻辑)这里
查询:
select
columna, columnb, columnc
from
table A
when
columnd <> null,
if columnd is null then
select the columna, columnb, columnc
from table A
where max(columne)
字符串
这里columnd
和columne
都是timestamp列,需要表中的最新行。
就像在这两种情况下只取前1行一样。
选择结果后,存储过程完成后,columna, columnb, columnc
应作为输出打印。
TIA...
我尝试了下面这样的东西:
把整个第二步放在第二个存储过程中,并在主插入存储过程中调用存储过程。但是我在逻辑上失败了。正如我所说的-我还在学习...
CREATE PROCEDURE test()
LANGUAGE SQL
BEGIN
DECLARE V_COLUMNA VARCHAR(255);
DECLARE V_COLUMNB VARCHAR(255);
DECLARE V_COLUMNC VARCHAR(255);
DECLARE V_COLUMND VARCHAR(255);
DECLARE V_COLUMNE VARCHAR(255);
IF (
SELECT
COUNT(*)
FROM
tableA pl
WHERE
columnd IS NULL) > 0 THEN
SELECT
columna,
columnb,
columnc,
columne
INTO
V_COLUMNA,
V_COLUMNB,
V_COLUMN,
V_COLUMNE
FROM
tableA
ORDER BY
TIMESTAMP DESC
FETCH FIRST 1 ROW ONLY;
ELSE
SELECT
columna,
columnb,
columnc,
columnd
INTO
V_COLUMNA,
V_COLUMNB,
V_COLUMN,
V_COLUMND
FROM
tableA
ORDER BY
TIMESTAMP DESC
FETCH FIRST 1 ROW ONLY;
END IF;
IF V_COLUMND IS NOT NULL THEN
SELECT
V_COLUMNA,
V_COLUMNB,
V_COLUMN,
V_COLUMND;
END IF;
IF V_COLUMND IS NULL THEN
SELECT
V_COLUMNA,
V_COLUMNB,
V_COLUMN,
V_COLUMNE;
END IF;
END;
型
1条答案
按热度按时间fquxozlt1#
您可以通过以下方式修改DB2输出过程:
字符串