首页 > 解决方案 > 选择几行到几个变量中 - Oracle PL/SQL

问题描述

我有一个返回这样的查询的选择语句:

SELECT value FROM dummy WHERE condition = 1;

    ROW | value
   -----|-----
    1   | val1
    2   | val2
    3   | val3
    4   | val4

我有 4 个变量

r1, r2, r3, r4

将这些变量分配给我的查询值的最简洁方法是什么?我可以使用 SELECT INTO 语句吗?

标签: sqloracleplsql

解决方案


一种方法是:

SELECT p_v1 = MAX(CASE WHEN row = 1 THEN value end),
       p_v2 = MAX(CASE WHEN row = 2 THEN value end),
       p_v3 = MAX(CASE WHEN row = 3 THEN value end),
       p_v4 = MAX(CASE WHEN row = 4 THEN value end)
FROM dummy
WHERE condition = 1;

这是一个返回一行的聚合查询。如果缺少特定行,则值为NULL


推荐阅读