我有一个叫M_StockCode_JB
的表。其字段为Code
,Description
和Display
。
显示仍为空,但代码和描述的值如下:
M_StockCode_JB
-----------------------
Code | Description
1 | Apple
2 | Banana
3 | Pinneaple
我想添加名为'Display'的列,其中包含Code和Description中的数据,我打算使用此SQL SELECT "NAME" ||'-' || DESCRIPTION FROM M_STOCKCODE_JB
,因此它将生成如下:
M_StockCode_JB
------------------------------------------
Code | Description | Display
1 | Apple | 1-Apple
2 | Banana | 2-Banana
3 | Pineapple | 3-Pineapple
当我添加列代码和描述时,如何插入显示列?
答案 0 :(得分:2)
如果您的展示广告专栏只包含"NAME" ||'-' || DESCRIPTION
,并且您使用的是Oracle 11G或更高版本,则可以创建虚拟列
ALTER TABLE M_StockCode_JB ADD (Display AS (NAME ||'-' || DESCRIPTION))
在任何版本中,您都可以创建视图
CREATE OR REPLACE VIEW V_M_StockCode_JB AS
SELECT "NAME" ||'-' || DESCRIPTION FROM M_STOCKCODE_JB
如果列需要可更新,那么您需要带有触发器的实列
ALTER TABLE M_StockCode_JB ADD (Display VARCHAR2(4000));
CREATE OR REPLACE TRIGGER M_StockCode_JB_trig
BEFORE
INSERT ON M_StockCode_JB
FOR EACH ROW
BEGIN
:new.Display = :new.NAME ||'-' || :new.DESCRIPTION;
END;
/