MSSQL 콤마로 들어간 데이터 IN 검색 질문 드려요 0 3 1,521

by 탑개발자 [SQL Query] [2018.08.18 17:32:51]


화면에서 체크박스로 체크된값 을 1,2,3 이런식으로 한컬럼에 넣었습니다.

검색시 선택한 값 검색을 하려 하는데 IN 검색을 해야하는데   오라클은

REGEXP_LIKE (EC_EDU_TARGET,REPLACE ('(' ||  #cheketarget# || ')',',','|')))   이런식으로 함수쓰면 되는데

MSSQL 어떻게 해야할까요 ?

도움 부탁드립니다. 참고로 MSSQL 2008버전 입니다.

by 야신 [2018.08.19 00:08:44]

http://sqlhints.com/tag/split-comma-separated-values-in-sql/

https://sqlperformance.com/2012/07/t-sql-queries/split-strings

구글에서 찾았는데 참조해 보시지요. mssql 은 거의 사용하지 않아서 이렇게 밖에 드릴수 없네요..-_-;;

오라클과 달리 mssql 은 구현이 복잡하네요

그래도 검색한것 중에 가장 가장 쉬운 방법은 

검색 조건을 사용될 때 가능한 dynamic SQL 인것 같습니다.

 

exec 'SELECT * FROM SampleTable WHERE class in (' + @class + ')'
이렇게 하면 아래와 같이 작동한다네요.
SELECT * FROM SampleTable WHERE class in (12,22,45,66)

https://stackoverflow.com/questions/45117042/how-to-separate-string-by-comma-using-sql-server

 

 

 


by 탑개발자 [2018.08.19 13:05:01]

답변 감사합니다.


by 마농 [2018.08.20 09:10:29]
 WHERE ',' + #cheketarget# + ',' LIKE '%,' + ec_edu_target + ',%'
 WHERE CHARINDEX(',' + ec_edu_target + ',', ',' + #cheketarget# + ',')

 

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