위와 같은 데이터를 가진 테이블이 있을 경우, 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() 버튼을 클릭하여 작성 하시면 됩니다.