我正在尝试构建一个查询来从 system.CATALOG 表中获取列,并根据结果集继续查询。我查看了一些查询,但似乎无法找到满足我要求的任何内容。我没有太多要表明,我已经尝试过,因为我不知道,如何处理这个问题。
我正在使用Apache Phoenix DB。 (任何SQL也没关系,因为我有兴趣学习。)
我现在已经编写了下面的查询,它将获取所有列名称,以测试中的 A 开头,用于表元素。
SELECT
COLUMN_NAME
FROM SYSTEM.CATALOG
WHERE TABLE_SCHEM = 'TEST'
AND TABLE_NAME = 'ELEMENT'
AND COLUMN_NAME LIKE 'A%'";
现在,我想在上述查询的结果集中使用UPSERT
查询中的列名列表,以更新元素表记录中的这些列。所以我被困在这里。
答案 0 :(得分:0)
尝试一下,效果很好。
SELECT column_name
FROM system.catalog
WHERE table_name = 'your_table' AND key_seq IS NOT NULL
答案 1 :(得分:0)
示例:要在桌子上放盐桶:
select table_name, salt_buckets
from SYSTEM.CATALOG
where salt_buckets is not null and table_name='TABLE_NAME';