- 절

2014-05-14 4 views
-2

IN 유 I이 '아이디'와 같은 문자열 '사용자 이름, 성, 이름을'싶어, '성', '이름'- 절

을 나는이

시도
DECLARE @Header varchar(MAX) 
SELECT @Header= 'Username,Surname,Name' 

SELECT @Header = replace(@Header,',',''',''') 
SELECT @Header = ''[email protected]+'' 

SELECT * from myTable where field in ($header) 

결과는이 '사용자 이름', '성', '이름'

처럼해야하지만 내 나쁜 영어 죄송합니다 아무것도 를 표시하지 왜 모르겠어요.

+0

는 M.Ali @ 나는 ('사용자 이름', '성이', '이름') 잘 작동의 경우 필드 myTable에에서이 SELECT *를 시도하지만 나는 ('사용자 이름이 SELECT * myTable에에서 어디 필드를 시도 , 성, 이름 ') 아니오 !!!!! SQL Server 2005에 있습니다 – user3638173

+0

죄송합니다. 실수로 SSRS 쿼리 디자이너와 혼동을 느낍니다. S –

+0

문제가 없습니다 :) tnx any way – user3638173

답변

0

다음 작업을해야합니다 :

DECLARE @Header varchar(MAX) 
DECLARE @sqlstmt varchar(MAX) 
SET @Header= 'Username,Surname,Name' 

SET @Header = replace(@Header,',',''',''') 
SET @Header = ''''[email protected]+'''' 

SET @sqlstmt = 'SELECT * from myTable where field in ('[email protected]+')' 
exec (@sqlstmt) 
0

나는 이것이 XY problem 수 있습니다 생각한다.

다음과 같은 것을 사용할 수없는 이유가 있습니까?

SELECT * 
FROM myTable 
WHERE field IN ('''Username''', '''Surname''', '''Name'''); 
field의 값 중 하나입니다 myTable의 모든 행에 대한 모든 열을 반환

:

  • 'Username'
  • 'Surname'
  • 'Name'

하는 것으로, 작은 따옴표를 이스케이프 처리합니다. 문자열 리터럴에서 '' 만 사용하십시오. 따라서 단일 작은 따옴표가 포함 된 리터럴은 ''''이됩니다.