【发布时间】:2019-12-08 12:00:07
【问题描述】:
我的程序 db 中有这个愚蠢的表。程序不是我们的,所以无法更改表格内容。该表以不可读的代码存储类似 SQL 的表达式。我将这些值转换回 SQL 表达式以运行这些表达式。到目前为止,翻译部分进展顺利。到目前为止的结果是如下表:
+--------+--------+---------+----------------+-----------------+
| CODE | SEQNUM | LOGICAL | EXPRESSION | EXPRESSIONVALUE |
+--------+--------+---------+----------------+-----------------+
| A23000 | 1 | NULL | OTHERCODE LIKE | 'A522%' |
+--------+--------+---------+----------------+-----------------+
| A23000 | 2 | OR | OTHERCODE = | 'A62342' |
+--------+--------+---------+----------------+-----------------+
| A23000 | 3 | OR | OTHERCODE = | 'A62343' |
+--------+--------+---------+----------------+-----------------+
| B43000 | 1 | NULL | OTHERCODE IN | 'B34324' |
+--------+--------+---------+----------------+-----------------+
| B43000 | 2 | NULL | NULL | 'B92338' |
+--------+--------+---------+----------------+-----------------+
| B43000 | 3 | NULL | NULL | 'B92342' |
+--------+--------+---------+----------------+-----------------+
| B43000 | 4 | NULL | NULL | 'B02349' |
+--------+--------+---------+----------------+-----------------+
| B43000 | 5 | OR | OTHERCODE = | 'B32443' |
+--------+--------+---------+----------------+-----------------+
或者为了让我有有效的 SQL 语句,我需要在有“in-expression”的行后面加上逗号。我认为这需要基于之前的行。我需要一张像这样的桌子:
+--------+--------+---------+----------------+-----------------+------------+
| CODE | SEQNUM | LOGICAL | EXPRESSION | EXPRESSIONVALUE | CALCULETED |
+--------+--------+---------+----------------+-----------------+------------+
| A23000 | 1 | NULL | OTHERCODE LIKE | 'A522%' | NULL |
+--------+--------+---------+----------------+-----------------+------------+
| A23000 | 2 | OR | OTHERCODE = | 'A62342' | NULL |
+--------+--------+---------+----------------+-----------------+------------+
| A23000 | 3 | OR | OTHERCODE = | 'A62343' | NULL |
+--------+--------+---------+----------------+-----------------+------------+
| B43000 | 1 | NULL | OTHERCODE IN | 'B34324' | ',' |
+--------+--------+---------+----------------+-----------------+------------+
| B43000 | 2 | NULL | NULL | 'B92338' | ',' |
+--------+--------+---------+----------------+-----------------+------------+
| B43000 | 3 | NULL | NULL | 'B92342' | ',' |
+--------+--------+---------+----------------+-----------------+------------+
| B43000 | 4 | NULL | NULL | 'B02349' | NULL |
+--------+--------+---------+----------------+-----------------+------------+
| B43000 | 5 | OR | OTHERCODE = | 'B32443' | NULL |
+--------+--------+---------+----------------+-----------------+------------+
这可能与 SQL 有关吗?
【问题讨论】:
标签: sql oracle calculated-columns