我具有以下表格结构:
"DocumentSubject"
(
"Id" SERIAL NOT NULL,
"Description" text,
"List1Left" text,
"List1Right" text
);
"DocumentRegistryAttributes"
(
"Id" SERIAL NOT NULL,
"DocumentSubjectId" integer,
"Code" text,
"WorkDetails" text,
"Name" text
);
在DocumentSubject
中有一个名为List1Left
的列,其中包含DocumentRegistryAttributes
表f中的列名。 Code
。
我可以根据存储在Code
表中的字符串列名称从DocumentRegistryAttributes
中检索列DocumentSubject
的值吗?
我需要这样的东西:
"DocumentRegistryAttributes"["DocumentSubject"."List1Left"]
<-首先从表“ DocumentSubject”中获取“ List1Left”列的值,然后从“ DocumentRegistryAttributes”表中检索此列的值。
这里是小提琴:http://www.sqlfiddle.com/#!17/6cbc3/1
真正的问题是,我不能在WHERE子句中使用任何静态条件。 DocumentRegistryAttributes
表中的每个文档可以分配给DocumentSubject
表中的不同主题,并且每个主题可以具有不同的配置。
有可能吗?
答案 0 :(得分:1)
您可以使用to_jsonb()
为"DocumentRegistryAttributes"
中的行创建JSON,以列名作为键,然后从JSON中选择文本,其中键是{{1}中的文本}。
"DocumentSubject"."List1Left"