问题标签 [nvl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
18680 浏览

java - 为什么 NVL 函数称为“NVL”?

有时我会nvl()在代码中看到一个函数。在 Java 的情况下,它看起来像这样:

我明白这个函数的作用,但我不明白为什么叫它nvl。为什么不呢checkNotNullreturnNotNullNVL 代表什么?

我猜是N ull Value L ...?

0 投票
3 回答
2436 浏览

sql - 显示另一个表中一列的计数,即使计数为零

我有两张桌子A 和 B。在表A(Oracle sql)中,唯一列(不是主键)代码可能在表B中有一些记录。

例子:

代码“A”有 3 个条目,代码“B”有 2 个条目,代码“C”在表 B 中有 0 个条目。我希望查询显示代码及其在表 B 中的记录数。

但我没有得到表 B 中记录为零的代码,即 C 0。

请任何人都可以帮助我进行查询。

0 投票
2 回答
1945 浏览

oracle - Oracle 使用 NVL 检查空行替换 null

我正在运行一个查询来检索一个整数,但想要检查空值。如果为 null,我希望查询返回 0。我该怎么做?我在下面尝试了这个,但它不起作用

如果 A_COUNT 为空,我希望查询返回 0。在上述情况下,我在 VEH_YEAR 列中没有值 2003。如果我在 VEH_YEAR 列中有值 2003 但 A_COUNT 为空,则查询有效。

0 投票
0 回答
97 浏览

sql - 如何使用提示更新记录。(如果为 null 则不更新)

我正在创建一个脚本,如果我输入一些内容,我需要一个提示来要求更新记录,如果我将其保留为空,我不想更新。无论如何,我认为这与 CASE 或 NVL 有关。

第一部分要求一个数字。在我输入数字后,它会为我提供有关 STR_NUM 的信息。然后应该出现另一个提示(我需要帮助的部分)询问我是否要更改名称(STR_NAME)。如果我将提示留空,则不会发生任何变化,但是如果我输入某些内容,它应该会更改 STR_NAME。

但是我根本无法得到提示。我是否应该以某种方式将 select 和 update 语句合并在一起?

编辑: 好的,我一直在胡闹。我想我可能更接近了,因为至少我得到了提示,但是我得到了更新部分的缺失表达式错误。由于它将存储在 v_str_name 中,如果我在那里调用它,我可以这样做(idk I '我还是新的)。

编辑2:我明白了。这比我想象的要容易。

0 投票
1 回答
105 浏览

sql - 在 SQL 中,如何加入通常为空的列,以便仍检索数据?

我想将一个新列合并到一个有效的 SQL 查询中。

但是,它会导致整个查询根本不返回任何内容(因为该列在数据库中大部分为空)。

到目前为止,这是我的精简代码:

我想添加的大部分为空的列是sodRow (这就是代码AND sodRow.activity_result_code = 'ASD'被注释的原因)。

每当我放回额外的 join forsodRow时,它只会将所有内容都归零,而我根本没有得到任何结果。但我希望它像NVLor一样工作COALESCE,如果它存在,它只显示该列,否则只显示其他所有内容。

我尝试先在代码中创建一个视图,然后再对其进行操作UNION。但似乎视图仅适用于 PL/SQL 代码。

我也尝试了外部连接,但这不起作用。

我认为问题可能出在WHERE我的加入代码的情况下。我确实喜欢 Dmitri 建议 belwo :

或者:问题是它不会返回任何行。IE 如果我们正在寻找“ACL”,那么之前对“ASD”的检查变为真,并且会使下一次检查无用。

我想我只是无法想象连接是如何在这里工作的

, 谢谢 !

0 投票
2 回答
29430 浏览

sql - 如何在where子句中使用Oracle的decode函数

我有一个带有几个过滤条件的查询,其中之一是将查询作为整数参数。我只想在这个整数大于 0 时才使用这个过滤器,我不能使用 NVL,因为它永远不会为空。在这种情况下我该如何使用DECODE

我得到的参数?是一个整数

0 投票
2 回答
15469 浏览

oracle - Oracle NVL 函数不允许第二个参数作为日期时间

在执行上述查询时,我收到以下错误

看起来当我使用字符串或数字而不是trunc(sysdate)它运行良好时。

0 投票
1 回答
2138 浏览

oracle - JPA coalesce / NVL,绑定参数和数据库索引使用

NVL(some_column, ' ') = ' '当我们想在可空列上使用基于函数的索引时,Oracle 有一种常用的方法来使用谓词,如下所示:

JPA 中内置的谓词:

由 hibernate 实现(也由 eclipse 实现)生成的结果 SQL 谓词:

由于使用了第一个绑定参数,它不允许 oracle 使用基于函数的索引。因此,oracle 使用了 FULL SCAN。

根据代码 ( LiteralExpression.render(...)),JPA 实现为所有字符串文字(非数字文字)创建绑定参数。我认为它使用这种方法来避免可能的 SQL 注入......

与数字列类似的情况可以正常工作:(nvl(sometable0_.some_column, -1)=-1第二个-1可以替换为criteriaBuilder.parameter(...)不强制 Oracle 对每个新参数值进行硬解析)。

所以我的问题是:在我绝对确定注射不可能的情况下,是否有任何合法的方法可以强制 JPA 不使用绑定参数?

附言。我可以使用我自己的表达式实现(绕过标准构建器构建),如下所示:

但我不认为这是正确的。

0 投票
5 回答
5401 浏览

java - Oracle nvl 需要在数字字段中插入 null

这是我正在运行的删除脚本的后备脚本。这是我用来生成插入语句的查询。

这是该查询的结果:

运行它会给出 ORA-00936: 由于空的 info_type 和 scriptid 字段而缺少表达式,这两个字段都是数字并且允许为空。我需要生成的查询说

当 info_type 和 scriptid 为空时。我试过做 nvl(info_type,'null') 但得到 ORA-01722: invalid number for trying to put a string into a number field。当 info_type 或 scriptid 为 null 时,我如何操作它以返回 null 而不是 ,

0 投票
2 回答
5425 浏览

sql - 通过 DECODE 进行 Oracle SQL 比较

我尝试在 Oracle 中获取一些东西,如果commission大于0.2我想要的'GOOD',否则'BAD'。如果commission is null我想得到0. 我知道这是 with NVL,但语法有问题。你能帮助我吗?