ql 서버는 문자열을 쉼표로 결과 집합으로 분할합니다

1144 단어 데이터베이스
쉼표, 로 분할된 문자열을 Sql Server에서 테이블로 변환하고 in 조건을 적용합니다.
문자열을 쉼표로 나누어 결과 집합으로 테이블에 저장하기;코드는 다음과 같다.
/******************************/create Function StrToTable (@str varchar(1000)) Returns @tableName Table (str2table varchar(50) As - 쉼표로 구분된 여러 데이터 문자열을 하나의 테이블의 한 열로 변환하는 데 사용되는 함수입니다. 예를 들어 문자열'1,2,3,4,5'는 하나의 테이블을 프로그래밍하고 이 테이블은 Begin set @str''Declare @insert Str varchar(50) - 캡처된 첫 번째 문자열 Declare @newstr varchar(1000) - 첫 번째 문자열을 캡처한 후 남은 문자열 set @insert Str = left(@str,charindex(',',','@str) - set @newstr = stuff(@str,1,charindex(','@str),'')  Insert @tableName Values(@insertStr)  while(len(@newstr)>0)  begin  set @insertStr = left(@newstr,charindex(',',@newstr)-1)  Insert @tableName Values(@insertStr)  set @newstr = stuff(@newstr,1,charindex(',',@newstr),'')  end  Return  End/*************************/
새로운 sql 문장은 in 조건과 관련된 위에서 조회한 결과 집합을 인용합니다.코드는 다음과 같습니다.
declare str vchar(100); --  str  

set str=’1,2,3’; --     
select * from tablename where id in (select str2table from StrToTable(@str) )

좋은 웹페이지 즐겨찾기