fel*_*zkn 11 sql postgresql plpgsql variable-assignment
该指令有效:
SELECT INTO unsolvedNodes array_agg(DISTINCT idDestination)
FROM road
WHERE idOrigin = ANY(solvedNodes)
AND NOT (idDestination = ANY(solvedNodes));
Run Code Online (Sandbox Code Playgroud)
但我想用这种方式:
SELECT INTO unsolvedNodes array_agg(DISTINCT idDestination), lengths array_agg(length)
FROM road
WHERE idOrigin = ANY(solvedNodes)
AND NOT (idDestination = ANY(solvedNodes));
Run Code Online (Sandbox Code Playgroud)
如何只使用一个"SELECT INTO"指令来设置多个变量?
Erw*_*ter 20
在PL/pgSQL中,您可以直接使用SELECT INTO 多个变量.你刚才有了语法:
SELECT INTO unsolvedNodes, lengths
array_agg(DISTINCT idDestination), array_agg(length)
FROM road
WHERE idOrigin = ANY(solvedNodes)
AND NOT (idDestination = ANY(solvedNodes));
Run Code Online (Sandbox Code Playgroud)
您有关键字INTO后跟目标变量列表,并且您有相应的SELECT列表.该INTO条款的目标可以是(引用这里的手册):
...记录变量,行变量或逗号分隔的简单变量和记录/行字段列表.
也:
该
INTO子句几乎可以出现在SQL命令的任何位置.通常,它在SELECT命令中的select_expressions列表之前或之后写入,或者在命令结束时写入其他命令类型.如果PL/pgSQL解析器在将来的版本中变得更严格,建议您遵循此约定.
这不要与SELECT INTOPostgres的SQL方言混淆 - 没有人应该再使用它.它违反标准SQL,最终将被删除.该手册积极阻止其继续使用:
最好
CREATE TABLE AS在新代码中用于此目的.
Ali*_*eri 16
是的,
SELECT name,family INTO cName, cFamily FROM "CommonUsersModel";
Run Code Online (Sandbox Code Playgroud)
或者
SELECT INTO cName, cFamily name,family FROM "CommonUsersModel"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10320 次 |
| 最近记录: |