테이블에 데이터가 1 2 3 4 이런 형태로 구성되어있습니다.
SELECT 문에 조건을 주어서 해당 단일 값을 콤마(,) 으로 묶어서 문자열 형태로 반환 하고 싶습니다.
이런 경우 어떻게 쿼리를 구성하면 좋을지 궁금합니다.
예를 들면 userno값에 100,102,104,107,88000이렇게 select 된 경우
문자열 결과값을 101,2012,203
이런식으로 return 받으려고 합니다.
Comment 4
-
나는짱이야
2013.09.24 19:14
다시해보니 되네요..
결과값은 ,95209246,1707571,23904,1649146,28,29,32,100,135,8 요렇게 나오게 됩니다.
결국은 맨 앞의 콤마를 삭제 해야되겠네요.
그런데 해당 부분은 FUNCTION 으로 만들었는데요.
FUNCTION내에서 PRINT문 출력하면 정상적으로 보이는데
SELECT DBO.퍼션이름 이렇게 하니
여러 부분으로 구성된 식별자 은(는) 바인딩할 수 없습니다.
요런 에러가 뜨네요.이게 무슨 문제인지 모르겠습니다.
-
쓸만한게없네(윤선식)
2013.09.24 23:44
테이블 별칭 부분 확인해 보세요...
예를 들면 다음과 같은 부분이요...
FROM TABLENAME1 A JOIN TABLE2 B ON ~~~
만약, SELECT에 나오는 컬럼이 A TABLE에도 있고 B TABLE에도 있으면 정확하게 명시해 주셔야 합니다.
--> SELECT A.Col1, B.Col1 이런 식으로요.
-
minsouk
2013.09.25 14:26
declare @a varchar(8000) = ''
select top 10 @a = @a +','+ cast(idx as varchar(8000)) from tblx
select SUBSTRING(@a, 2, 8000)
select STUFF(@a, 1,1,'')
문자열을 합치는거야 간단히 select @a = @a + .... 이런식으로 해주면 되는데
100,102,104,107,88000 이게 어떻게 101,2012,203 이것이 되는지를 모르겠네요.