SQL Server 4

[MSSQL] 여러 행을 한 줄로 나타내는 방법

#temp 테이블 name clor 1 apple red 2 banana yellow 3 peach pink 4 melon green 1. for xml path 사용 for xml path를 사용하면 결과가 xml태그로 나온다. 하지만 우린 xml태그는 필요 없기 때문에 3번째 줄처럼 select ','+name라고 써준다. 그러면 결과는 ,apple,banana,peach,melon 라고 나온다. 여기서 첫 번째 콤마는 필요 없기 때문에 이 콤마를 제거해준다. substring이나 replace같은 방법도 있지만 STUFF를 사용해서 첫 번째 콤마만 제거해주었다. SELECT STUFF(( SELECT ',' + name FROM #temp WHERE 1=1 FOR XML PATH('') ),1,1,..

MSSQL 2021.08.02

[MSSQL] where절에 if문 같은 조건 사용하기

프로시저에서 데이터 조회 쿼리를 짤 때 where절에서 파라미터 값에 따라 다른 조건을 넣어줘야 하는 경우가 생겼다. sql실행문을 string변수에 담아 실행하는 방법도 있지만 이미 짜 놓은 쿼리가 있어서 전부 string형으로 변경하려면 시간이 꽤 소요될 것 같았다. create table #temp_table ( fruit varchar(10), quantity int ) insert into #temp_table values('apple',2) insert into #temp_table values('pear',0) insert into #temp_table values('banana',3) insert into #temp_table values('strawberry',0) insert into ..

MSSQL 2021.05.21

[MSSQL] 조건문 CASE WHEN 사용 예제

유저 아이디, 티어, 플레이 시간이 다음과 같이 저장되어 있는 Temp_user 테이블에서 case문을 이용해 데이터를 가져올 것이다. userId tear play_time -------- -------- ----------- player1 1 100 player2 2 1500 player3 3 350 player4 1 980 player5 2 90 player6 3 1900 유저의 티어 값에 따라 [골드][실버][브론즈]로 나타내는데 브론즈일 경우 플레이 시간이 1000시간 이상이라면 티어를 [심해]로 가져오자. SELECT userId AS 아이디, play_time AS 플레이시간, CASE WHEN tear = '1' THEN '골드' WHEN tear = '2' THEN '실버' WHEN te..

MSSQL 2021.04.02