나는 값의 목록을 가지고 있으며, 값의 각 행에 대해 "or"를 수행하거나 테이블에 추가하고 테이블을 쿼리 할 필요가 없다고 상기 목록에 의해 쿼리 할 수 있는지 궁금합니다. 약 할)DB2 SQL - 값의 각 행에 "or"를 사용하지 않고 값 목록을 쿼리 할 수 있습니까?
예를 들어, 내 목록은;
010, 46793, '329', '10'
011, 46798, '322', '12'
012, 33333, '111', '14'
이렇게 질문하고 싶습니다.
SELECT VALUE1, VALUE2, VALUE3
FROM MYTABLE
WHERE (VALUEW VALUEX, VALUEY, VALUEZ) in(
(010, 46793, '329', '10'),
(011, 46798, '322', '12'),
(012, 33333, '111', '14'))
대신 수행 할 필요없이 (이 문법 실패);
SELECT VALUE1, VALUE2, VALUE3
FROM MYTABLE
WHERE (VALUEW VALUEX, VALUEY, VALUEZ) = (010, 46793, '329', '10')
OR (VALUEW VALUEX, VALUEY, VALUEZ) = (011, 46798, '322', '12')
OR (VALUEW VALUEX, VALUEY, VALUEZ) = (012, 33333, '111', '14')
SELECT VALUE1, VALUE2, VALUE3
FROM MYTABLE
WHERE VALUEW IN(010, 011, 012)
AND VALUEX IN(46793, 46798, 33333)
AND VALUEY IN('329', '322', '111')
AND VALUEZ IN('10', '12', '14')
이 시나리오에서는 작동하지 않습니다.
예를 들어, 아래 값이 "MYTABLE"에 존재하면;
011, 33333, '329', '10'
위의 SQL은 검색 할 수 있지만 내 목록에 없습니다.
운영 체제가 실행은 당신의 Db2 서버? (Z/OS, OS/400, Linux/Unix/Windows). 구문은 다양 할 수 있습니다. – mao
좋은 점은 언급 했어야합니다. - iSeries (OS/400) 버전에서 실행 중입니다. V6R1M0 – RDKells