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

문상연 2016.03.24 18:29 Views : 2375

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
Notice 2023년 1월 - SQLER의 업데이트 강좌 리스트 코난(김대우) 2023.01.02 1249
9261 포인트 충전 및 사용시 방법문의 드립니다. [3] 후오로 2016.04.02 2620
9260 T-SQL 과 jdbc [1] 그러던가 2016.04.01 2141
9259 CPU 과점유 상태 분석에 대한 문의 [6] dontcryme 2016.03.31 3130
9258 특정 칼럼에 여러개의 값을 받을때의 질문입니다. [6] karyaladin 2016.03.31 2084
9257 MSSQL 쿼리문 검색을 통하여 엑셀파일 첨부하여 메일링 보내는 프로시저 [질문] 곰요 2016.03.30 3089
9256 특정기간 동안 월, 시작일, 종료일을 가지고 오고 싶은데요. [3] DOOLLY 2016.03.30 3527
9255 REPLACE 의 INTO 구문이 잘못되었다고는 하는데 오류좀 찾아 주세요. [4] 니가사와맥주 2016.03.29 2452
9254 sqlserver.exe 서비스가 2개가 실행되는 현상 [1] 생초보 2016.03.29 2229
9253 복제.. 게시 구독에서.. 게시 테이블 변경시 괜찮을까요? 공유맨 2016.03.28 2304
9252 두 테이블 합치기 [4] Blue2 2016.03.28 3372
9251 다중값 처리를 어떻게 해야 하나요? [4] 꼽냐™ 2016.03.27 8047
9250 문이 완료되기 전에 최대 재귀 횟수(100)가 초과되었습니다. [3] 성시기 2016.03.25 8398
» 펑션함수내에서 when case문제..? [6] 문상연 2016.03.24 2375
9248 테이블결과 값을 리스트형태로 출력할 수 있을까요??? [1] SQL어렵.. 2016.03.24 2166
9247 JOB이 멈춰서 KILL 했는데도 무응답.. 무슨상태일까요? [4] DoubleSH 2016.03.24 2895
9246 2005 -> 2014 업그레이드 관련 질문 [1] rollback 2016.03.24 2108
9245 OPENQUERY 변수이용 방법을 알고 싶습니다. [3] 아싸라비아콜롬비아 2016.03.22 5317
9244 두개의 테이블 비교 [2] DOOLLY 2016.03.22 2273
9243 복합인덱스 사용중 입니다. [2] 후오로 2016.03.22 2246
9242 다른 데이터 베이스에서 함수를 호출하고 싶습니다. [2] 아싸라비아콜롬비아 2016.03.21 5953





XE Login