Oracle 如何实现变量查询

CREATE TABLE [dbo].[test2021](

jshj decimal(18,2) NOT NULL,

sl   decimal(18,2) NOT NULL)

 

 

insert into  [test2021] values('10','12')

 

 

declare

@c decimal(18,2)

select @c=SUM(jshj) from [test2021]

select  sum(sl)/@c from [test2021]

 

查询结果为1.2

 

如何在 ORACLE 里实现

针对你的问题,可以使用以下的 SQL 语句在 Oracle 中实现变量查询:

CREATE TABLE test2021(

jshj number(18, 2) NOT NULL,

sl   number(18, 2) NOT NULL);

insert into test2021 values('10', '12');

DECLARE

c number(18, 2);

BEGIN

select SUM(jshj) into c from test2021;

dbms_output.put_line(sum(sl)/c);

END;

在 Oracle 中,DECLARE 后面的语句可以声明变量,然后通过 SELECT INTO 将查询结果赋值给变量。在上述例子中,我们同样声明变量 c,然后查询表 test2021 中 jshj 的和并将其赋值给 c。然后,我们在 BEGIN-END 块中,通过 dbms_output.put_line 输出变量 sl 和变量 c 的商,从而得到了查询的结果。

需要注意的是,在 Oracle 中,数字数据类型使用 number 类型。如果需要存储小数,则需要使用 number(p,s),其中 p 表示总位数,s 表示小数位数。在插入数据时,需要插入数字而不是字符串。

希望这个回答对你有所帮助!