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

문상연 2016.03.24 18:29 Views : 2426

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 SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 39823
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 21805
9263 Create Table 하면서 제약조건명을... [4] rollback 2016.04.04 2290
9262 이런식으로 값을 가져올수있을까요?! [1] Blue2 2016.04.04 2230
9261 포인트 충전 및 사용시 방법문의 드립니다. [3] 후오로 2016.04.02 2685
9260 T-SQL 과 jdbc [1] 그러던가 2016.04.01 2171
9259 CPU 과점유 상태 분석에 대한 문의 [6] dontcryme 2016.03.31 3186
9258 특정 칼럼에 여러개의 값을 받을때의 질문입니다. [6] karyaladin 2016.03.31 2135
9257 MSSQL 쿼리문 검색을 통하여 엑셀파일 첨부하여 메일링 보내는 프로시저 [질문] 곰요 2016.03.30 3173
9256 특정기간 동안 월, 시작일, 종료일을 가지고 오고 싶은데요. [3] DOOLLY 2016.03.30 3579
9255 REPLACE 의 INTO 구문이 잘못되었다고는 하는데 오류좀 찾아 주세요. [4] 니가사와맥주 2016.03.29 2557
9254 sqlserver.exe 서비스가 2개가 실행되는 현상 [1] 생초보 2016.03.29 2265
9253 복제.. 게시 구독에서.. 게시 테이블 변경시 괜찮을까요? 공유맨 2016.03.28 2341
9252 두 테이블 합치기 [4] Blue2 2016.03.28 3435
9251 다중값 처리를 어떻게 해야 하나요? [4] 꼽냐™ 2016.03.27 9300
9250 문이 완료되기 전에 최대 재귀 횟수(100)가 초과되었습니다. [3] 성시기 2016.03.25 9196
» 펑션함수내에서 when case문제..? [6] 문상연 2016.03.24 2426
9248 테이블결과 값을 리스트형태로 출력할 수 있을까요??? [1] SQL어렵.. 2016.03.24 2253
9247 JOB이 멈춰서 KILL 했는데도 무응답.. 무슨상태일까요? [4] DoubleSH 2016.03.24 2987
9246 2005 -> 2014 업그레이드 관련 질문 [1] rollback 2016.03.24 2150
9245 OPENQUERY 변수이용 방법을 알고 싶습니다. [3] 아싸라비아콜롬비아 2016.03.22 5520
9244 두개의 테이블 비교 [2] DOOLLY 2016.03.22 2334





XE Login