我之前的问题被标记为已经回答。但是,建议的解决方案(enter link description here)仅对我有所帮助。 我想知道如何将视图导入表结构或如何将视图用作列。在建议的解决方案的帮助下,我创建了以下语句:
CREATE VIEW my_col4 AS
SELECT transaction.quantity * transaction.unit_price AS total_price
FROM transaction
下一步是执行sql语句:SELECT * FROM my_col4
我的结果是130.00 €
这是quantitiy(10) * unit_price(13.00)
但是我不知道如何将其实现到我的表中,请问进一步的sql语句应如何获得以下结果:
|id description | quantity | unit_price | total_price |
|1 Energy drink | 10 | 13.00 | 130.00 |
我希望我的想法是正确的,期待您的回答。
这是我(缩短的)表的sql语句
CREATE TABLE public.transaction3
(
id integer NOT NULL,
description character varying(50) COLLATE pg_catalog."default" NOT NULL,
quantity real NOT NULL,
unit_price money NOT NULL,
total_price money NOT NULL,
CONSTRAINT transaction3_pkey PRIMARY KEY (id)
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;
ALTER TABLE public.transaction3
OWNER to postgres;
答案 0 :(得分:2)
SELECT
之后的项目实际上是(标量)表达式。这些可以是纯列名称,也可以是引用列名称的表达式。它们还可以包含引用列名称的函数,或者包含 not 引用任何列的函数。 (例如random()
或now()
)
CREATE VIEW my_transaction AS
SELECT t.id , t.discription
, t.quantity , t.unit_price
, t.quantity * t.unit_price AS total_price
-- nonsense below this line ...
, upper(t.discription) AS "CAPITALS"
, now() AS heute
, (random()* 1000000)::integer AS lottery_number
FROM transaction t
;