두 값 사이의 값을 체크하는 쿼리가 생각이 안납니다ㅠㅠ 0 2 1,802

by 포병이짱이여 [SQL Query] BETWEEN [2022.05.19 15:14:21]


안녕하세요.

현재 개발하고 있는 기능중에 두개의 값을 입력받은 후에 기존에 입력되어 있는 값과 비교하여 중복된 값이 발생시 등록이 안되도록 하는 부분이 있는데

쿼리로 작성하려니 잘 작성이 되지 않아서 질문드립니다ㅠㅠ

예를 들어서 A테이블에

START END
20 40

위와 같은 값이 있다고 가정하면(위의 데이터는 더 늘어날 수 있습니다)

2개의 값을 입력할 때 2개의 값 사이에 존재하는 범위가 20~40 사이의 숫자가 포함되어 있으면 입력이 되지 않아야 합니다.

INSERT INTO A VALUES (10, 15) -> 입력가능(10, 11, 12, 13, 14, 15)

INSERT INTO A VALUES (25, 30) -> 입력불가능(25, 26, 27, 28, 29, 30)

INSERT INTO A VALUES (10, 50) -> 입력불가능(10, 11, 12, 13.... 48, 49, 50)

2개의 값을 입력할때 그 사이의 값을 숫자 1단위로 체크해서 등록이 되지 않게 해야하는데

단순히 BETWEEN을 사용해서는 처리가 안되는 것 같습니다. 

어떤방식으로 처리해야 할지 방법을 알려주시면 감사하겠습니다.

by 마농 [2022.05.19 15:39:12]
-- 범위 검색은 시작, 종료 교차 비교 --
SELECT *
  FROM t
 WHERE st <= :v_ed
   AND ed >= :v_st
;
http://gurubee.net/article/45391

 


by 포병이짱이여 [2022.05.19 16:44:10]

와 교차비교.. 이런 생각은 전혀 못했었는데.. 감사합니다! 덕분에 해결되었습니다ㅠㅠ

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