mysql null 제외 번호매기기 0 2 1,559

by 밍밍밍밍 [MySQL] [2022.08.12 15:09:42]


안녕하세요.

mariadb 10.1버전 사용중입니다.

사용한 쿼리

 SELECT 
@rownum:=@rownum+1, b.hosPitalNo, addr2
FROM Hospital b, (SELECT @rownum:=0) TMP;

 

쿼리 실행결과

rownum hospitalNo addr2
1 5 부산
2 12  
3 15 서울

 

addr컬럼이 공백일경우 rownum 번호 매기는것도 패스할수있을까요?

아래표처럼요

rownul hospitalNo addr2
1 5 부산
  12  
2 15 서울

 

 

by pajama [2022.08.12 15:47:02]

case when으로 가능하지 않을까요~

with hospital (hospitalno, addr2) as (
select 5, '부산' union all
select 12, null union all
select 15, '서울'
)
SELECT
CASE WHEN addr2 is not null THEN (@rownum:=@rownum+1) END rownum, b.hosPitalNo, addr2
FROM Hospital b, (SELECT @rownum:=0) TMP;

 


by 마농 [2022.08.16 10:04:53]
WITH Hospital AS
(
SELECT 5 hosPitalNo, '부산' addr2
UNION ALL SELECT 12, null
UNION ALL SELECT 15, '서울'
)
SELECT CASE WHEN addr2 IS NOT NULL
       THEN COUNT(addr2) OVER(ORDER BY hosPitalNo)
        END rownum
     , hosPitalNo, addr2
  FROM Hospital
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입