问题标签 [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.
java - 为什么 NVL 函数称为“NVL”?
有时我会nvl()
在代码中看到一个函数。在 Java 的情况下,它看起来像这样:
我明白这个函数的作用,但我不明白为什么叫它nvl
。为什么不呢checkNotNull
?returnNotNull
NVL 代表什么?
我猜是N ull Value L ...?
sql - 显示另一个表中一列的计数,即使计数为零
我有两张桌子A 和 B。在表A(Oracle sql)中,唯一列(不是主键)代码可能在表B中有一些记录。
例子:
代码“A”有 3 个条目,代码“B”有 2 个条目,代码“C”在表 B 中有 0 个条目。我希望查询显示代码及其在表 B 中的记录数。
但我没有得到表 B 中记录为零的代码,即 C 0。
请任何人都可以帮助我进行查询。
oracle - Oracle 使用 NVL 检查空行替换 null
我正在运行一个查询来检索一个整数,但想要检查空值。如果为 null,我希望查询返回 0。我该怎么做?我在下面尝试了这个,但它不起作用
如果 A_COUNT 为空,我希望查询返回 0。在上述情况下,我在 VEH_YEAR 列中没有值 2003。如果我在 VEH_YEAR 列中有值 2003 但 A_COUNT 为空,则查询有效。
sql - 如何使用提示更新记录。(如果为 null 则不更新)
我正在创建一个脚本,如果我输入一些内容,我需要一个提示来要求更新记录,如果我将其保留为空,我不想更新。无论如何,我认为这与 CASE 或 NVL 有关。
第一部分要求一个数字。在我输入数字后,它会为我提供有关 STR_NUM 的信息。然后应该出现另一个提示(我需要帮助的部分)询问我是否要更改名称(STR_NAME)。如果我将提示留空,则不会发生任何变化,但是如果我输入某些内容,它应该会更改 STR_NAME。
但是我根本无法得到提示。我是否应该以某种方式将 select 和 update 语句合并在一起?
编辑: 好的,我一直在胡闹。我想我可能更接近了,因为至少我得到了提示,但是我得到了更新部分的缺失表达式错误。由于它将存储在 v_str_name 中,如果我在那里调用它,我可以这样做(idk I '我还是新的)。
编辑2:我明白了。这比我想象的要容易。
sql - 在 SQL 中,如何加入通常为空的列,以便仍检索数据?
我想将一个新列合并到一个有效的 SQL 查询中。
但是,它会导致整个查询根本不返回任何内容(因为该列在数据库中大部分为空)。
到目前为止,这是我的精简代码:
我想添加的大部分为空的列是sodRow
(这就是代码AND sodRow.activity_result_code = 'ASD'
被注释的原因)。
每当我放回额外的 join forsodRow
时,它只会将所有内容都归零,而我根本没有得到任何结果。但我希望它像NVL
or一样工作COALESCE
,如果它存在,它只显示该列,否则只显示其他所有内容。
我尝试先在代码中创建一个视图,然后再对其进行操作UNION
。但似乎视图仅适用于 PL/SQL 代码。
我也尝试了外部连接,但这不起作用。
我认为问题可能出在WHERE
我的加入代码的情况下。我确实喜欢 Dmitri 建议 belwo :
或者:问题是它不会返回任何行。IE 如果我们正在寻找“ACL”,那么之前对“ASD”的检查变为真,并且会使下一次检查无用。
我想我只是无法想象连接是如何在这里工作的
, 谢谢 !
sql - 如何在where子句中使用Oracle的decode函数
我有一个带有几个过滤条件的查询,其中之一是将查询作为整数参数。我只想在这个整数大于 0 时才使用这个过滤器,我不能使用 NVL,因为它永远不会为空。在这种情况下我该如何使用DECODE
?
我得到的参数?
是一个整数
oracle - Oracle NVL 函数不允许第二个参数作为日期时间
在执行上述查询时,我收到以下错误
看起来当我使用字符串或数字而不是trunc(sysdate)
它运行良好时。
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 不使用绑定参数?
附言。我可以使用我自己的表达式实现(绕过标准构建器构建),如下所示:
但我不认为这是正确的。
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 而不是 ,
sql - 通过 DECODE 进行 Oracle SQL 比较
我尝试在 Oracle 中获取一些东西,如果commission
大于0.2
我想要的'GOOD'
,否则'BAD'
。如果commission is null
我想得到0
. 我知道这是 with NVL
,但语法有问题。你能帮助我吗?