A테이블
name age status
홍길동 21 2
감유신 33 3
유관순 35 3
CREATE FUNCTION [dbo].[fn_A]
RETURNS VARCHAR(8000)
AS
BEGIN
DECLARE @str VARCHAR(8000)
SET @Str=''
SELECT @str = @Str +'<b>'+name+'</b>|'+age+'|<br>' FROM A WHERE status=3 ORDER BY name asc
RETURN @str
END
위 테이블을 보시면 status값이 3인게 김유신하고 유관순 2개가 아래처럼 나와야 하는데
<b>김유신</b>|33|<br>
<b>유관순</b>|35|<br>
하지만 위 반환함수를 출력하면 아래와 같이 유관순 하나만 나옵니다.
<b>유관순</b>|35|<br>
2개다 반환하게 하고 싶은데 어떻게 해야하나요?
안녕하세요.
군고구마님 쿼리는 테이블 반환이고.. 그냥 컬럼 하나로 반환하고 싶으시다면 이런 식으로 하시면 됩니다.
CREATE FUNCTION [dbo].[fn_C]
(@Status Int)
RETURNS VARCHAR(8000)
AS
BEGIN
DECLARE @str VARCHAR(8000)
SET @Str=''
SELECT @str = @Str +'<b>'+name+'</b>|'+CONVERT(varchar,age)+'|<br>'+CHAR(10) FROM A WHERE status=@Status ORDER BY name asc
RETURN @str
END
select dbo.[fn_C](3)
감사합니다 ^^