Как добавить значение в этот оператор SQL в DB2? - PullRequest
0 голосов
/ 04 апреля 2019

Мне нужно добавить 'P06' в случае, когда подзапрос выбирает RPCODE. Я все еще изучаю SQL, поэтому я еще не эксперт в подзапросах, поэтому я не совсем уверен, как добавить значение в утверждение.

Моим первым решением было просто добавить ИЛИ «P06» после «P01», но это кажется неправильным.

               CASE WHEN (SELECT RPCODE FROM AGQA.QAB2010
                 WHERE  INDATE || INTIME = ( SELECT MAX(INDATE||INTIME) FROM AGQA.QAB2010 WHERE RTAG  IN (SELECT TAG FROM TAGDATA) )
                  AND RTAG  IN (SELECT TAG FROM TAGDATA) ORDER BY RPDATE DESC, SER DESC FETCH FIRST 1 ROW ONLY) = 'P01'  THEN  'N' ELSE 'C' END
        ELSE 'R' END, 'S' )  AS TTYPE

Прямо сейчас, когда RPCODE равен «P01», TTYPE отображается как «N». Мне нужно добавить 'P06', чтобы TTYPE также отображался как 'N' для RPCODE 'P06'

1 Ответ

1 голос
/ 04 апреля 2019

Как прокомментировал Роб Уилсон ...

Измените = 'P01' на IN ('P01', 'P06')

Однако, хотя утверждение может работать для вас, производительность вышенабор данных любого приличного размера, вероятно, будет плохим.

Количество подвыборов и fetch first row - красные глаза на мой взгляд.

С фоном в разработке RPG на Db2 для меняэто утверждение похоже на то, что многие из тех, кого я видел у программистов RPG, привыкли работать с записями данных 1 одновременно, а не с наборами данных.Джефф Моден из SqlServerCentral.com) обработку можно увидеть в SQL от разработчиков на любой платформе и из любого фона.

К сожалению, переход к заданному базовому процессу не является быстрым решением для нетривиальных операторов.Необходим полный отчет и подробная информация о данных и дизайне таблицы.

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