Использование оператора Like с IN - PullRequest
0 голосов
/ 13 мая 2019

У меня есть сценарий, в котором мы используем несколько одинаковых операторов в одном из запросов.

enter image description here введите описание изображения здесь

SQL 2:

 SELECT *
    FROM VOUCHER
    WHERE VCHTYPE = 'R'
   AND REMARKS  LIKE '%3791%'
 AND Remarks  LIKE '%3727%'

Дело в том, что SQL 2 получает свои данные из SQL 1:

 SELECT *
    FROM VOUCHER
    WHERE VCHTYPE = 'D'

, который меняется каждый раз.

Мы пытаемся все автоматизировать и хотим изменить SQL 2 таким образом, чтобы вход для SQL 2 можно было взять непосредственно из SQL 1.

Я приложил скриншот.

enter image description here введите описание изображения здесь

Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 13 мая 2019

Возможно, попробуйте объединить в соответствии с

select * from voucher a
join voucher b on
    (b.vchtype = 'D' and a.remarks like ('%' + b.vchseq + '%') and a.vchtype = 'R')
0 голосов
/ 13 мая 2019

Вы просто хотите in?

SELECT v.*
FROM VOUCHER v
WHERE v.VCHTYPE = 'D' AND
      v.vchseq IN (SELECT v2.vchseq
                   FROM VOUCHER v2
                   WHERE v2.VCHTYPE = 'R'
                  );
...