请教高手一个数据库添加列的问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 08:50:50
假设数据库里面原来有两列,都是数值型的,现在想要再加一列布尔型的列,就是把第1列减第二列,大于0的是真,等于0的是假,怎么加
问题补充,那个系统是用ORACLE编写的

数据库类型中没有布尔类型,你可以用字符型或者数值型表示。
用字符型时可以存'1'/'0'或'true'/'false'或'真'/'假'或'T'/'F'都可以,自己决定。
用数值型时一般存1或0,1表示真,0表示假。

设表名为T1,列名为C1,C2,现加一个C3。然后对C3赋值。
alter table T1 add C3 varchar(2);
update T1 set C3='真' where C1>C2;
update T1 set C3='假' where C1<=C2;

这样做不是很好,因为以后C1和C2值修改之后C3并不能跟着修改,除非做触发器等。

最好是不在表中加字段,在查询时通过伪列实现。如:
select C1,C2,case when C1>C2 then 'true' else 'false' end C3 from T1;

布尔型的没有,但是可以加个bit类型的代替,1为TRUE,0为FALSE。

Alter 表名 add 列名3 bit;
update 表名 set 列名3=1 where 列名1-列名2>0
update 表名 set 列名3=0 where 列名1-列名2=0

不过上面没有考虑列名1-列名2<0的情况,如果有,列3的值为NULL

SQLSERVER是没逻辑型的,但ACCESS中有先添加一列,类型为罗辑型的.添加字段就不用我说了吧.
假定有A,B,C三列,如果B>A 则那么一行的C为真,用以下语句
update 表名 set C=(B>A)
这句一定行,我用过的

hellokittywxp的建议很好