数据库
DB2
场景
我有一列需要为真或假。我找到了两个指向如何实现这一目标的资源;然而,当我将它们放在一起时,我得到了一个错误。
当前解决方案
CREATE TABLE USERS
(
ID INT NOT NULL,
.
.
.
IS_LOCKED SMALLINT NOT NULL WITH DEFAULT 0,
PRIMARY KEY(ID)
);
SELECT U.ID, CAST(U.IS_LOCKED AS BOOLEAN) as IS_LOCKED FROM USERS U
错误:数据类型为“SYSIBM.SMALLINT”的值无法转换为类型“SYSIBM.BOOLEAN”
问题
如何在 Db2 中使用 BOOLEAN?
最佳答案
Linux/Unix/Windows 上的 Db2 V11.1 支持 BOOLEAN 作为列数据类型,并且可以在结果集中返回此类列。这是一个使用命令行处理器的示例(在 bash shell 中):
create table mytable( id integer, mybool boolean with default true )
DB20000I The SQL command completed successfully.
insert into mytable(id, mybool) values (1, false), (2, true), (3, false)
DB20000I The SQL command completed successfully.
select id,mybool from mytable order by 1
ID MYBOOL
----------- ------
1 0
2 1
3 0
3 record(s) selected.
但是,虽然纯 DDL 和 SQL DML 的 CLP 支持 bool 值,但请考虑使用 Db2 列数据类型 bool 值对应用程序的影响。检查 PHP、Python、Java、.net 等如何根据用于访问数据库的任何语言来操作此数据类型。
提示:在寻求有关 Db2 的帮助时,明智的做法是始终提及您的 Db2 版本和运行 Db2 服务器的操作系统(即 z/os、iSeries、linux/unix/windows) 并相应地标记您的问题。
关于sql - 在 Db2 中处理 BOOLEAN 值的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49389561/