전적으로 SQL에 익숙하지 않습니다. 연구를하면서 아래에 나와있는 문제를 발견했습니다.In() 연산자가 작동하지 않습니다.
쿼리를 실행하면 125,130,131
으로 출력됩니다. 그 출력을 @issueid
변수에 저장합니다. 내가 @issueid='125'
를 전달하면 내가 더 출력을 보여줍니다 @issueid='125,130,131'
을 전달하면 나는 결과
- : 나는 아래 쿼리에
@issueid
변수를 사용할 때declare @issueid varchar(100) set @issueid = ( SELECT STUFF( ( SELECT ','+convert(varchar,ism_id) FROM table where ism_group_name='TEST_COPY' FOR XML PATH('') ) ,1,1,''))
는하지만 이상한 행동을 얻는다.
내 쿼리 :
SELECT *
FROM
ISSUE_MASTER (NOLOCK),
ORDER_ENTRY_PPDI (NOLOCK)
WHERE ISM_ID= OE_ISSUE_ID
and ism_id=oe_issue_id
and convert(varchar,oe_issue_id) in (@issueid)
AND ISM_STATUS = 0
GROUP BY ISM_ISSUER_NAME,ISM_ISSUE_NAME,OE_ISSUE_ID
이 도와주세요! 내가 뭘 잘못하고 있니?
마지막으로 Integer 데이터 유형으로 사용할 때 정수 값을 문자열로 연결하는 이유는 무엇입니까? 대신 테이블 변수를 사용하여 문제 ID를 캡처 한 다음 두 번째 쿼리에서 사용하십시오. –
변수'@ issueid'는 제공하신 검색어가 아닌 다른 곳에 필요합니까? 그렇지 않다면, 변수에 값을 저장하지 않고 테이블'table'에 직접 결합합니다. – Aquillo