任何人都知道string_agg结果需要"按摩"所以它们可以在IN语句中使用? 以下是一些示例代码。谢谢你的时间。 P.S:在挠头之前问他到底是怎么回事。我只使用此代码来显示string_agg b / c的问题,因为您可以看到查询,否则有点无意义。
亨利
WITH TEMP AS
(
SELECT 'John' AS col1
UNION ALL
SELECT 'Peter' AS col1
UNION ALL
SELECT 'Henry' AS col1
UNION ALL
SELECT 'Mo' AS col1
)
-- results that are being used in the IN statement
--SELECT string_agg('''' || col1::TEXT || '''',',') AS col1 FROM TEMP
SELECT col1 FROM TEMP
WHERE col1 IN
(
SELECT string_agg('''' || col1::TEXT || '''',',') AS col1
FROM TEMP
)
答案 0 :(得分:0)
您不能将动态代码与静态代码混合使用。你的例子不清楚你想要做什么。您的样本可以写成:
echo $a"'"$b"'"
或使用数组:
c
或简单(在这种情况下,因为main和subselect是没有任何过滤器的同一个表):
WITH TEMP(col1) AS (values ('John'), ('Peter'), ('Henry'), ('Mo'))
SELECT col1 FROM TEMP
WHERE col1 IN (SELECT col1 FROM TEMP)