Reputation: 11
If I am selecting data from tables how can I append a new column with respect to column in my table?
Foe example, I am getting data from table as
select cont_no,Cont_name from emp;
cont_no cont_name
abc abc1
cde cde1
cde cde2
cde cde3
efg efg1
efg efg2
hij hij
but I want to add a virtual column like this:
added_column cont_no cont_name
1 abc abc1
2 cde cde1
cde cde2
cde cde3
3 efg efg1
efg efg2
4 hij hij
Upvotes: 1
Views: 50
Reputation: 167982
WITH emp ( cont_no, cont_name ) AS (
SELECT 'abc', 'abc1' FROM DUAL UNION ALL
SELECT 'cde', 'cde1' FROM DUAL UNION ALL
SELECT 'cde', 'cde2' FROM DUAL UNION ALL
SELECT 'cde', 'cde3' FROM DUAL UNION ALL
SELECT 'efg', 'efg1' FROM DUAL UNION ALL
SELECT 'efg', 'efg2' FROM DUAL UNION ALL
SELECT 'hij', 'hij' FROM DUAL
)
SELECT CASE cont_no
WHEN LAG( cont_no ) OVER ( ORDER BY cont_no, cont_name )
THEN NULL
ELSE DENSE_RANK() OVER ( ORDER BY cont_no )
END as added_column,
cont_no,
cont_name
FROM emp;
Output:
ADDED_COLUMN CONT_NO CONT_NAME
------------ ------- ---------
1 abc abc1
2 cde cde1
cde cde2
cde cde3
3 efg efg1
efg efg2
4 hij hij
Upvotes: 2