- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我们有一个在 NVL 语句中使用 case 的查询但是我认为可以删除 NVL
请引用以下查询部分 -
select f1, NVL((
CASE
WHEN PROD_CD = 'ESALE'
THEN SUM (prod_count)
WHEN PROD_CD = 'RSALE'
THEN (SUM (prod_count) * -1)
ELSE NULL
END),0) AS SALEQTY
这样写也能避免NVL吗
select f1,
CASE
WHEN PROD_CD = 'ESALE'
THEN SUM (prod_count)
WHEN PROD_CD = 'RSALE'
THEN (SUM (prod_count) * -1)
ELSE 0
END AS SALEQTY,
最佳答案
首先,这是一个奇怪的结构。其次,与 NVL()
相比,我更喜欢 COALESCE()
(标准函数)——但这无关紧要。
如果所有 prod_count
值都可以是 NULL
给定的组。如果是这种情况,那么您需要进行外部检查。仅仅在不同的列上添加 ELSE
没有帮助。
我还会注意到逻辑看起来很可疑。通常 CASE
作为 SUM()
的参数——通常不需要 NULL
检查:
SELECT f1,
SUM(CASE WHEN PROD_CD = 'ESALE'
THEN prod_count
WHEN PROD_CD = 'RSALE'
THEN - prod_count
ELSE 0
END) AS SALEQTY,
关于sql - NVL 在查询中使用案例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55626883/
有时我会在代码中看到一个nvl()函数。对于 Java,它看起来像这样: public static String nvl(String value, String alternateValue) {
我正在尝试分析由离职开发人员编写的现有 Oracle 查询。我不精通 Oracle,我对使用此 DECODE 有点困惑Microfocus COBOL 中的函数app(其中 :BV-POS_YEAR
我有此表,其中NULL是NULL值,而不是字符串NULL: MYCOL -------- NULL example 为什么此查询不返回NULL行? select * from example_so w
select nvl(trunc(null),trunc(sysdate)) from dual; 在执行上述查询时,我收到以下错误 ORA-00932: inconsistent datatypes
我们有一个在 NVL 语句中使用 case 的查询但是我认为可以删除 NVL 请引用以下查询部分 - select f1, NVL(( CASE WHEN PR
select NVL(B.SEQID, A.LVL5_ID) LVL6_ID, NVL(B.NAME, ' ') LVL6_NAME, A.LVL5_ID FROM LVL5 A, ABC B WH
尝试执行使用空参数值的 native SQL 查询时出现 Oracle 错误。我把它归结为这个测试用例: String SQL_SELECT = "select * fro
我有以下代码: SELECT cr_ts, msg_id, info FROM messaging_log WHERE UPPER(INFO) LIKE '%' || TRIM(UPPER(P_INF
我试图在我的数据库中传递一个空值作为其他东西,它似乎在没有这样的 Where 子句的情况下工作 select NVL(column1, '0') column1 from table1 产生这个
我正在做一些从 Oracle 到 MSSQL 的转换,我正在阅读 Oracle 在 B Supported SQL Syntax and Functions 上的指南. 我注意到有人说有一个 NOT
我在 SQL Server 上执行以下查询但出现错误: SELECT DISTINCT t1.p_id "Id", (TO_CHAR("sysdate", 'YYYY') + least(SIGN((
我有一个 Web 表单,允许用户根据传递到过程的参数搜索和编辑 Oracle 表中的记录。这是我的数据: CAE_SEC_ID SEC_CODE APPR_STATUS 1 A
有人知道为什么 Oracle 的 NVL (和 NVL2)函数总是计算第二个参数,即使第一个参数不是 NULL ? 简单测试: CREATE FUNCTION nvl_test RETURN NUMB
我有两个 Oracle 12c (12.1.0.2.0) 数据库,其中一个对于以下查询(使用 SQL Developer 3.2.20.10)返回 'ok',而另一个则返回 ORA-01722:无效数
我在 SQL Server 上执行以下查询但出现错误: SELECT DISTINCT t1.p_id "Id", (TO_CHAR("sysdate", 'YYYY') + least(SIGN((
我正在使用 Java 6 和 Oracle 10。我有一个 java 语句,我想测试 null 或空字符串。 我的代码如下所示: PreparedStatement stmt = null; Stri
一段时间以来,我一直想知道 DECODE 和 NVL 函数的内部工作是如何完成的。如果其中的参数数量更多,DECODE 函数是否会产生更多开销? 此外,NVL 函数是否评估给定的值而不是 NULL,即
我正在尝试运行以下查询: select a.*, case when NVL (SELECT max(b.field1) FROM b where b.fiel
oracle 有一个很好的内置函数,用于 if null,但是我想做 if = 0;有没有一种简单的方法可以做到这一点? nvl(instr(substr(ovrflo_adrs_info,instr
有了这个, set serveroutput on size 900000; DECLARE test VARCHAR(255):=0; BEGIN SELECT id INTO test
我是一名优秀的程序员,十分优秀!