sql-对数字使用嵌套替换

vddsk6oq  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(525)

我有一个包含一组数字的列的数据库。每个数字都是它自己的值,我想用新的值替换这个数字。

Current Value   New Value
    1               5
    2               3
    3               2
    4               1
  any other         0

以上应执行流动示例

Input       output
1142         5513
6741         0005
0613         0052

我考虑过使用下面的嵌套替换,但是如果原始值是3,那么它将按照上面的图表更改为2。然后它将再次替换为2!

REPLACE(REPLACE(REPLACE(REPLACE(form,'1','5'),'2','3'),'3','2'),'4','1')

有人知道我怎样才能做到这一点吗?

66bbxpm5

66bbxpm51#

要在一个查询中完成您的特定问题,您确实可以嵌套replace()多次,如下所示。分两个阶段进行,你可以 modified 2 一个独特的字符,所以你知道你需要改为3。

SELECT
REPLACE(    
    REPLACE(
        REPLACE(
            REPLACE(
                REPLACE(
                    REPLACE(
                        REPLACE(
                            REPLACE(
                                REPLACE(
                                    REPLACE(
                                        REPLACE(
                                            REPLACE(
                                                REPLACE(Input, '1','E')
                                            ,'2','C')
                                        ,'3','B')   
                                    ,'4','A')
                                , '5','0')
                            , '6','0')
                        , '7','0')
                    , '8','0')
                , '9','0')
            , 'A','1')
        , 'B','2')
    , 'C','3')
, 'E','5')
from NummerTest

相关问题