sql - Char(1) vs Number(2) 在 oracle 中性能更好
问题描述
要求表中有真或假列。Oracle 不允许列的布尔/位数据类型。所以我们可以通过两个选项 char(1) 或数字数据类型来做到这一点,并将 1 和 0 存储为数字或字符,如“1”或“0”。
在此表上使用 where 条件在此列上执行选择时,并在其上创建索引,哪种数据类型更适合使用。字符或数字。
或者没关系。请对此有所了解。
解决方案
If you store as NUMBER(1) as 0 and 1 you can do Binary operations of Boolean Truth values using BITAND
and the below implementation of bitor
CREATE OR REPLACE FUNCTION bitor(x NUMBER, y NUMBER) RETURN NUMBER
DETERMINISTIC
IS
BEGIN
RETURN x - bitand(x, y) + y;
END;
推荐阅读
- node.js - 如何在 dms 中提及用户
- python-3.7 - 为什么我的 CSV 没有保存抓取的数据?
- c# - ASP.NET Core 3.0:命名空间中不存在类型或命名空间名称“CreateDefaultBuilder”
- asp.net - ASP.NET 文本框中的小时数可以超过 12
- ruby-on-rails - 我怎样才能让分页和排序一起工作
- amazon-web-services - Redshift UNLOAD 忽略 DATESTYLE
- asp.net - Firefox中的iframe它是空的,带有aspx页面
- winapi - 每次在窗口中单击鼠标左键时,如何让消息框出现?
- angular - 即使有多个订阅者, concatMap 和 share 也只播放一次可观察的系列
- java - 如何按顺序进行多个 API 调用