SQL ALTER TABLE MATHS QUERY

时间:2016-09-15 11:14:42

标签: oracle

我尝试使用Maths查询(使用布尔值)填充Oracle SQL表中的列,但收到错误数据类型无效',我已经将它们设置为小数。非常感谢任何帮助...谢谢Gavin

ALTER TABLE GS_MRC_EXISTING
ADD IF ( GROSS_LAST + DISC_LAST ) < ( GROSS_THIS + DISC_THIS ) = TRUE THEN DEC_GROSS = ( GROSS_THIS - GROSS_LAST ) 

CREATE TABLE GS_MRC_EXISTING (
CUST_CODE varchar (255),
GROSS_LAST decimal (6,2),
DISC_LAST decimal (6,2),
GROSS_THIS decimal (6,2),
DISC_THIS decimal (6,2),
INC_GROSS decimal (6,2),
INC_DISC decimal (6,2),
DEC_GROSS decimal (6,2),
DEC_DISC decimal (6,2)
)

1 个答案:

答案 0 :(得分:1)

我真的不完全确定你的意图,但也许你正试图定义一个计算列:

CREATE TABLE GS_MRC_EXISTING (
CUST_CODE varchar (255),
GROSS_LAST decimal (6,2),
DISC_LAST decimal (6,2),
GROSS_THIS decimal (6,2),
DISC_THIS decimal (6,2),
INC_GROSS decimal (6,2),
INC_DISC decimal (6,2),
DEC_GROSS decimal (6,2)
  GENERATED ALWAYS AS (CASE
                         WHEN (GROSS_LAST + DISC_LAST) < (GROSS_THIS + DISC_THIS)
                           THEN GROSS_THIS - GROSS_LAST
                         ELSE 0
                       END),
DEC_DISC decimal (6,2)
)