在函数中使用查询结果(postgres 8.3)

nul*_*edo 7 sql postgresql

我想做这样的事情:

select char_length(select text_field from table where key = 1)
Run Code Online (Sandbox Code Playgroud)

这是行不通的,我认为,因为查询的返回类型是表,而不是字符串或文本变量.

有没有办法从select语句中指定结果的row,col?

编辑:我忽略了,char_length是一个函数.

Boh*_*ian 8

将查询结果传递给函数时,只需将查询包装在括号中:

select char_length((select text_field from table where key = 1));
Run Code Online (Sandbox Code Playgroud)

外部括号集用于函数,内部集合将查询转换为结果.

此语法并非特定于postgres - 它适用于所有SQL服务器.

此链接显示上面的代码正确执行(感谢@Fahim Parkar)


虽然,您可以将查询重新分解为不需要此语法,但这就是"将查询结果传递给函数"的方法.