데이터베이스 개발자 질문과 답변 게시판

데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.

펑션함수내에서 when case문제..?

문상연 2016.03.24 18:29 Views : 2356

a 테아불
==================
PK_ID     NAME    JUMSU
 1            문길수    50
 2            안청인     68
 3            오만숙    87
 4           최말자    100
 5           김숙자     78


위 테이블을 조회시 특정한 이름이 맨처름 조회가 되도록 할수없나요?

예를 들면 최말자라는 이름이 맨처음에 조회가 되는겁니다



최말자
문길수
안창인
오만숙
김숙자

어제 이렇게 질문드려서 좋은 답변을 받아서 아래와 같이 한번 해봤습니다

alter  FUNCTION [dbo].[fn_NameJoin]( @Name nvarchar(50))
RETURNS VARCHAR(1200)
AS
BEGIN

  DECLARE @retVal NVARCHAR(1200) 
  SELECT @retVal = COALESCE( @retVal + ',' ,'') + Ltrim(Rtrim(Name)) FROM table_test
  order by case when Name = @Name  then 0 else PK_ID end 
 
  RETURN @retVal
End

[dbo].[fn_NameJoin] ('오만숙')

위처럼 했는데요

김숙자 뿐이 안나옵니다

orerr by 절을 없애야지만  최말자, 문길수...... 잘나옵니다
그런데  order.절에 직접 이름을 적어주면 잘나옵니다
 order by case when Name = '오만숙'  then 0 else PK_ID end 

도대체 왜그럴까요?

이름을 직접 적어주면 되는데요 변수를 대입시키면 안됩니다
order by case when Name = @Name then 0 else PK_ID end
김숙자 뿐이 안나옵니다
맨마지막 데이타만 나옵니다

도대체 order by case when Name = '오만숙' then 0 else PK_ID end


무슨이유로 직접 적어주는거랑 변수로 비교하는거랑 뭐가 달라서 변수로 비교하면 COALESCE 기능조차도
안되는건가요?
No. Subject Author Date Views
9259 CPU 과점유 상태 분석에 대한 문의 [6] dontcryme 2016.03.31 3076
9258 특정 칼럼에 여러개의 값을 받을때의 질문입니다. [6] karyaladin 2016.03.31 2031
9257 MSSQL 쿼리문 검색을 통하여 엑셀파일 첨부하여 메일링 보내는 프로시저 [질문] 곰요 2016.03.30 3031
9256 특정기간 동안 월, 시작일, 종료일을 가지고 오고 싶은데요. [3] DOOLLY 2016.03.30 3477
9255 REPLACE 의 INTO 구문이 잘못되었다고는 하는데 오류좀 찾아 주세요. [4] 니가사와맥주 2016.03.29 2351
9254 sqlserver.exe 서비스가 2개가 실행되는 현상 [1] 생초보 2016.03.29 2202
9253 복제.. 게시 구독에서.. 게시 테이블 변경시 괜찮을까요? 공유맨 2016.03.28 2285
9252 두 테이블 합치기 [4] Blue2 2016.03.28 3326
9251 다중값 처리를 어떻게 해야 하나요? [4] 꼽냐™ 2016.03.27 6056
9250 문이 완료되기 전에 최대 재귀 횟수(100)가 초과되었습니다. [3] 성시기 2016.03.25 7160
» 펑션함수내에서 when case문제..? [6] 문상연 2016.03.24 2356
9248 테이블결과 값을 리스트형태로 출력할 수 있을까요??? [1] SQL어렵.. 2016.03.24 2092
9247 JOB이 멈춰서 KILL 했는데도 무응답.. 무슨상태일까요? [4] DoubleSH 2016.03.24 2782
9246 2005 -> 2014 업그레이드 관련 질문 [1] rollback 2016.03.24 2084
9245 OPENQUERY 변수이용 방법을 알고 싶습니다. [3] 아싸라비아콜롬비아 2016.03.22 4922
9244 두개의 테이블 비교 [2] DOOLLY 2016.03.22 2250
9243 복합인덱스 사용중 입니다. [2] 후오로 2016.03.22 2212
9242 다른 데이터 베이스에서 함수를 호출하고 싶습니다. [2] 아싸라비아콜롬비아 2016.03.21 5337
9241 sql server 2014 network storage 질문입니다. [1] db2inst1 2016.03.21 2289
9240 sql db 백업 관련 계정 권한 설정 관련 질문 입니다. [1] 돌강냉이 2016.03.21 2402





XE Login