코드값에 따른 결과 select 0 6 785

by dnfrkwhr [2019.03.20 11:19:27]


name code value
A 31 10
B 32 10
C 32 10

위와 같은 데이터를 가진 테이블이 있을 경우, code값이 32인 것만 아래와 같이 한행을 더 추가하면서 값은 31로 변경한 값을 쿼리문으로 작성하고 싶습니다. 전에 글을 남겼는데 이해가 안되서요. 다시 한번 부탁드립니다. 감사합니다.

name code value
A 31 10
B 31 10
B 32 10
C 31 10
C 32 10

 

by 우리집아찌 [2019.03.20 11:45:20]

DB 명시해주세요.


by dnfrkwhr [2019.03.20 12:00:34]

DB명시라는게 어떤건지요?


by 마농 [2019.03.20 12:12:35]

오라클 인지? MSSQL 인지? MySQL 인지?


by 마농 [2019.03.20 12:13:49]
-- Oracle --
WITH t AS
(
SELECT 'A' nm, 31 cd, 10 v FROM dual
UNION ALL SELECT 'B', 32, 10 FROM dual
UNION ALL SELECT 'C', 32, 10 FROM dual
)
SELECT nm
     , DECODE(lv, 1, cd, 31) cd
     , v
  FROM t
     , (SELECT LEVEL lv FROM dual CONNECT BY LEVEL <= 2)
 WHERE lv <= DECODE(cd, 32, 2, 1)
 ORDER BY nm, cd
;

 


by dnfrkwhr [2019.03.20 14:09:28]

아 그렇군요. 감사합니다.


by 이준환 [2019.03.20 14:05:08]
WITH T(NAME, CODE, VALUE)
AS
(
    SELECT 'A', '31', '10' FROM DUAL UNION ALL
    SELECT 'B', '32', '10' FROM DUAL UNION ALL
    SELECT 'C', '32', '10' FROM DUAL
)
SELECT
  NAME
, CODE
, VALUE
FROM T
UNION ALL
SELECT
  NAME
, '31' AS CODE
, VALUE
FROM T
WHERE CODE = '32'
ORDER BY NAME, CODE
;

간단하죠~? ^_^;

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