Oracle Добавить значения на основе существующего значения - PullRequest
0 голосов
/ 05 августа 2020

У меня есть столбец с частичными номерами в реестре.

docket_number
-------------
08DR2197
17JV1398
98JV2954
84JS249
76JV16391
66JV1616

Если номер в реестре начинается с 6, 7, 8 или 9, тогда вставьте «19» в начало номера в реестре. Если номер в реестре начинается с чего-то еще, вставьте «20» в начало номера реестра. Результаты будут выглядеть так.

docket_number
-------------
2008DR2197
2017JV1398
1998JV2954
1984JS249
1976JV16391
1966JV1616

Ответы [ 3 ]

1 голос
/ 05 августа 2020

Я бы просто сравнил строки:

update t
    set docket_number = (case when docket_number >= '60' and docket_number <= '99'
                              then '19' else '20'
                         end) || docket_number;
1 голос
/ 05 августа 2020
select case when substr(docket_number, 1, 1) in ('6', '7', '8', '9') then '19'
            else '20'
       end || docket_number as docket_number
from your_table
0 голосов
/ 05 августа 2020

Попробуйте этот вариант:

UPDATE yourTable
SET docket_number = CASE WHEN REGEXP_LIKE (docket_number, '^[6-9]')
                         THEN '19' ELSE '20' END || docket_number;

Я использую подход регулярных выражений для проверки первого di git. Параметр, предоставленный @Littlefoot, на самом деле может превзойти его, но приведенный выше код немного более лаконичен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...