在Oracle SQL中,根据现有列的值和其他条件计算值并存储它们的最佳方法是什么?
例如:
如果第1列的值=〉3,则结果应默认为该列的值。
但是,如果第1列的值〈3,第2列的值为1,第3列、第4列和第5列都有值,则该值应默认为2
如果第1列值小于3,第2列填充值为1,第4列、第5列有值,但第3列没有值,则默认值为2
如果第1列的值〈3,第2列填充的值为1,第3列和第4列有值,但第5列没有值,则对于填充的第3、4、5列的所有情形,默认值为1 ......等等
如果列1具有〈3的值,列2填充有值2,列3、列4和列5都具有值,则对于所有情形,该值应当默认为3等。
只是想知道最简单的方法去制定它,因为有无数的条件(19个条件是准确的)
3条答案
按热度按时间ykejflvf1#
除了你的一般判断力,我会使用一个案件时,把你的第一个标准第一,然后继续与后续的下一个优先条件。
将WHEN条件保留在应该处理它们的优先级中。
z3yyvxxp2#
我不知道你的一些条件是什么(“etc etc”),但其中一些条件(如2和3)是相同的,我怀疑你有19个条件。
您需要知道哪些条件具有优先级。
下面是基于您所提供的内容的查询的基本代码结构。
存储它们的方式如下:
vlju58qv3#
使用CASE表达式时要小心,因为它是按顺序工作的,并且在第一个结果为TRUE时退出。因此,条件的顺序至关重要。
结果-1表示没有匹配条件