사용자 바인드 변수 0 2 763

by webma [2022.07.20 00:21:29]


안녕하세요.

개발자 분 쿼리를 보다가 이해가 안되는 쿼리문이 있어 질문을 해 봅니다.

: inv_req = '00'

SELECT *
FROM ITEM
WHERE 1= 1
AND ITEM_ID =1001
AND :inv_req IN(1,2);

이런 쿼리가 있는데요 제 상식으로는 IN절 앞에 컬럼명이 있어야 하는데

저 쿼리에는 바인드 변수만 있고 해당 컬럼명이 없어서, 저 쿼리는 어떻게 해석을 해야 하는걸까요?

SELECT *
FROM ITEM
WHERE 1= 1
AND ITEM_ID =1001
AND 0 IN(1,2);

이렇게 해석을 해야 하는건지요??

아직 초보인지라 많이 가르쳐 주세요

by pajama [2022.07.20 06:55:49]

생각하신대로 동작하는게 맞습니다..쿼리 실행 플래그같기도 하고 그러네요.


by 마농 [2022.07.20 08:11:32]

알고 계신 상식은 상식이 아니라 고정관념입니다.
좌변은 컬럼 우변은 값이라는 고정관념을 버리세요.
(A = 1) 과 (1 = A) 는 같은 조건입니다.
좌변, 우변 모두 어떤 표현식이든 올 수 있습니다.
컬럼, 상수값 뿐 아니라 변수, 서브쿼리 계산식, 함수 기타 등등의 가능한 표현식
 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입