gpt4 book ai didi

sql - PL/SQL中IF block 的奇数编码风格

转载 作者:行者123 更新时间:2023-12-04 14:26:41 27 4
gpt4 key购买 nike

在我工作的地方,我看到很多以下类型的代码是用 PL/SQL 编写的,

IF a>b THEN
NULL;
ELSE
c:=a*b;
END IF;

我觉得这很奇怪,因为 C 等价物看起来像这样,
if (a>b)
{

}
else
{
c=a*b;
}

以上类型的代码在一个 C 论坛中被认为是糟糕的风格,我知道当新手发布时。
由于 PL/SQL 不允许空块并且总是需要一个 NULL 语句,这种类型的编码风格是否带来了可读性的任何优势,还是只是一个偏好问题?。 FWIW,用上述风格编写 PL/SQL 的人肯定是一个经验丰富的编码员。
与以下相比有什么优势吗?
IF a<=b THEN
c:=a*b;
END IF;

最佳答案

看来a <= b如果任何部分为空,则不会为真。这就是为什么这两种说法不同的原因。

在第一种情况下,c = a*b如果 a 将运行一片空白。在第二种情况下,它不会。除非您确定ab不为空,等效的语句将改为:

IF a<=b or (a is null) or (b is null) THEN
c:=a*b;
END IF;

关于sql - PL/SQL中IF block 的奇数编码风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7862014/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com