【发布时间】:2018-06-06 06:53:51
【问题描述】:
我需要编写一个查询,如果我将一些字符串列表传递给该查询,那么它将检查特定表是否存在并返回不存在的。我为此编写了以下查询
SELECT temp_table.configuration_key FROM (#PLACEHOLDER) temp_table
LEFT JOIN configuration c ON (c.configuration_key = temp_table.configuration_key) WHERE c.configuration_key IS NULL;
#PLACEHOLDER 将动态形成如下
1 .如果传递单个字符串 #PLACEHOLDER 将是
SELECT 'xyz' configuration_key
如果传递了多个字符串,#PLACEHOLDER 将是
SELECT 'xyz' configuration_key UNION ALL SELECT 'abc'
等等。
这里的第二个查询工作正常,但给第一个查询带来以下错误
failed to find conversion function from unknown to text
配置表有一个名为 configuration_key 的列
谁能告诉我这里出了什么问题。如果只传递一个字符串,如何形成查询(即形成一个具有单个元素的表)。我知道我可以通过完全不同的查询来做到这一点。但是我不能使用相同类型的查询来做到这一点吗?
【问题讨论】:
-
我的猜测是
NULL正在被转换成文本,也许你不能这样做。不过,我不完全理解您在这里要做什么。 -
帮助我们帮助您 - 请分享
configuration表的结构(或者最好是 - DDL)。 -
已更新。配置表有一个名为 configuration_key 的列
标签: sql postgresql