我有三列数据,我想使用ORACLE SQL检查它们的数据对齐情况,但有一个特定条件,即在这三列中允许NULL条目,但我想在对齐检查方面 * 完全忽略 * NULL条目,只报告ERROR条件 *,即非NULL条目之间存在对齐错误... *
一些例子-
Col_1 Col_2 Col_3 Alignment
ABC ABC ABC OK
ABC ABC NULL OK
ABC NULL NULL OK
NULL ABC ABC OK
NULL ABC NULL OK
NULL NULL NULL OK
ABC XYZ ABC ERROR
XYZ XYZ ABC ERROR
ABC NULL XYZ ERROR
XYZ ABC ABC ERROR
NULL NULL XYZ OK
XYZ XYZ NULL OK
NULL NULL XYZ OK
给定可以找到NULL条目、NULL条目对或NULL数据的三个条目的组合,我可以看到可以使用CASE WHEN的大量组合来 * 粗略地生成 * 第4个对齐列,但我希望可能有一个ORACLE SQL进程可以消除大量的CASE WHEN语句,假设我只想检查三列组合中存在"* some data *"的地方的数据对齐...
如能提供上述任何帮助,将不胜感激。
谨致问候。
2条答案
按热度按时间n3schb8v1#
这里有一个选择这是SQL*Plus,因此我将其设置为当该列中没有值时按字面显示
NULL
(以便看起来像您的示例)。dced5bon2#
您可以尝试使用单个CASE表达式,该表达式指定:
可以使用COALESCE函数处理NULL值,但是需要使用三个条件而不是两个条件,如下所示。
检查here演示。