首页 > 解决方案 > 如何在 SQL 中计算列中的逻辑表达式

问题描述

假设我有一个数据库表“ACCOUNTS”,其中只有 3 个字段:

  1. ACCOUNT_NUMBER (BIGINT)
  2. 信用(BIGINT)
  3. 借记卡 (BIGINT)

我只想做一个只显示两列的查询:

  1. ACCOUNT_NUMBER (BIGINT)
  2. “BALANCED”(一个布尔值。如果 Credit == Debit 则为 true,否则为 false)

我该如何进行这样的查询?

我尝试使用等号运算符 (=) 但它不接受它

SELECT 
    ACCOUNT_NUMBER, 
    CREDIT = DEBIT as "BALANCED"
FROM ACCOUNTS;

标签: sqloracle

解决方案


Oracle 的 SQL 中没有布尔数据类型,因此您必须接受的字符串(或数字)表示,例如

select account_number,
       case when credit = debit then 'true'
            else 'false'
       end as balanced
from accounts

推荐阅读