首页 > 解决方案 > 按照固定模式将表格值转换为文本

问题描述

我们使用软件来存储金融元素的组合。这些元素在某些组合中是允许的。这些组合的例外是前端中的类似 SQL 的语句,并在数据库表中保存为数值,如下例所示:

+------+------+------+------+------+
| Col1 | Col2 | Col3 | Col4 | Col5 |
+------+------+------+------+------+
| 1    | 2    | 4    | 5    | 1    |
+------+------+------+------+------+
| -1   | 2    | 6    | 4    | 5    |
+------+------+------+------+------+
| 1    | 2    | 5    | 7    | 1    |
+------+------+------+------+------+

我想将这些数值转换回 SQL 语句,如下例所示:

+------+-----------+------+-----------+------+-----------+------+-----------+------+-----------+
| Col1 | Col1Trans | Col2 | Col2Trans | Col3 | Col3Trans | Col4 | Col4Trans | Col5 | Col5Trans |
+------+-----------+------+-----------+------+-----------+------+-----------+------+-----------+
| 1    | (         | 2    | SELECT    | 4    | CODE      | 5    | LIKE      | 1    | *         |
+------+-----------+------+-----------+------+-----------+------+-----------+------+-----------+
| -1   |           | 2    | SELECT    | 6    | NUMBER    | 4    | =         | 5    | AND       |
+------+-----------+------+-----------+------+-----------+------+-----------+------+-----------+
| 1    | (         | 2    | SELECT    | 5    | TOOL      | 7    | <>        | 1    | *         |
+------+-----------+------+-----------+------+-----------+------+-----------+------+-----------+

每列的数值都不同,所以我只能想象使用很多案例......当我怀疑我怀疑的陈述是否有效时。我不想创建表来保存翻译值。有没有办法用数组做到这一点?

是否有任何代码示例可以轻松地遍历表/列并翻译其内容?

标签: sqloracletranslate

解决方案


您可以使用下面的代码并根据要求添加更多案例语句。

SELECT Col1
    ,CASE 
        WHEN Col1 = 1 THEN '('
        ELSE '' END AS Col1Trans
    ,Col2
    ,CASE 
        WHEN Col2 = 2 THEN 'SELECT'
        END AS Col2Trans
    ,Col3
    ,CASE 
        WHEN Col3 = 4 THEN 'CODE'
        WHEN Col3 = 6 THEN 'NUMBER'
        WHEN Col3 = 5 THEN 'TOOL'
        END AS Col3Trans
    ,Col4
    ,CASE 
        WHEN Col4 = 5 THEN 'LIKE'
        WHEN Col4 = 4 THEN '='
        WHEN Col4 = 7 THEN '<>'
        END AS Col4Trans
    ,Col5
    ,CASE 
        WHEN Col5 = 1 THEN '*'
        WHEN Col5 = 5 THEN 'AND'
        END AS Col5Trans

推荐阅读