【发布时间】:2014-12-04 23:25:33
【问题描述】:
我在 postgres 中有一个如下所示的表:
id score
1 23
2 4
3 42
4 21
在普通 SQL 中,我可以声明一个变量并根据 select 语句的结果为其赋值:
declare @this_score int;
select @this_score = score from scores where id = 3;
print @test_int;
这输出 42。是否可以在 postgres 中以这种方式分配变量?
【问题讨论】:
-
@raina77ow 我不认为这是重复的,这个问题不在于分配变量,而是将其用作过滤器。我想实际设置变量。
-
“普通 SQL”似乎是指 Transact-SQL(MS SQL Server、Sybase)或 MySQL(我不确定是哪个)。标准 SQL 本身没有变量的概念,而 PostgreSQL 在函数之外没有脚本功能(或相当有限的
DO语法)。 -
想一想,分号在 Transact-SQL 中是不合适的,所以我猜你认为 MySQL 是“正常的”。真的不是。它只是实现某些 SQL 版本的众多 DBMS 系统中的一种,它对事物的处理以非标准和强调易用性而不是健壮性而臭名昭著。
标签: sql postgresql