SQL - Использование вложенной замены на числа - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть база данных с колонкой, которая содержит набор чисел.Каждое число является его собственным значением, и я хотел бы заменить его новым значением.

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')

У кого-нибудь есть идеи, как мне этого добиться?

1 Ответ

0 голосов
/ 20 сентября 2018

Чтобы выполнить конкретный вопрос в одном запросе, вы действительно можете вложить REPLACE () много раз, как показано ниже.Делая это в 2 этапа, вы можете сделать 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...