안녕하세요 MSSQL과 C#으로 개발하고 있는 초보 전산쟁이입니다.
다름이 아니라 이번에 팝업창을 개발하면서 도저히 해결되지 않는 일이 생겨가지고 도움 좀 받고 싶어서 글을 남깁니다.
Winform 라벨 텍스트 값들을 플러스하여 그 값을 프로시저 파라미터값으로 넘깁니다.
값은 @ETC = -미성형-,-오염-,-파손-,-기타-,-GAS- 이런식으로 잘 넘어옵니다.
그럼 이 값을 받아와서 조회 구문 중 조건절에 WHERE DefName NOT IN ( REPLACE(@@ETC,'-','''') )
이런식으로 구성하여 - 를 작은 따옴표로 치환하고 실행되게 하려합니다.
하지만 이런 방법이 SELECT REPLACE(@@ETC,'-','''') 이렇게는 잘 먹히는데 조건절에 들어가면 안먹히더라구요,,
제가 잘못한걸까요???? 다른 방법이 있으면 알려주시면 감사하겠습니다. 선배님들
Comment 5
-
테이블 밸류 펑션으로 처리하던지 동적쿼리로 해야 합니다.
-
병구쓰
2019.09.03 10:29
늦게 답변드려 죄송합니다. 한번 말씀하신 방법으로 해보겠습니다.
-
jevida(강성욱)
2019.08.29 13:56
declare @Where nvarchar(500)
set @where = REPLACE(@ETC,'-','''')
select * from tblx where col1 = @where
-
병구쓰
2019.09.03 10:28
답변 감사드립니다.
이 방법은 해보았지만 NOT IN 에서는 먹히지 않더라구요...
-
야매DB
2019.09.06 19:33
not in 에 적용하실거면
declare @vQry nvarchar(500) = 'select * from 테이블 not in (' + @ETC + ' )'
exec sp_executesql @vQry
식으로 하시는게 제일 괜찮은 방법입니다.