Monday 12 February 2018

How to display multiple rows in one records in sql

Syntax :
select
   Col1,
        listagg(COL2, ',') within group (order by COL2) as COL2
From TABLE
Group By
   Col1


Example
Create Table Test_Transpose(Ids Number , Val Number);
Insert Into Test_Transpose Values (1, 11);
Insert Into Test_Transpose Values (1, 12);
Insert Into Test_Transpose Values (1, 13);
Insert Into Test_Transpose Values (1, 14);
Insert Into Test_Transpose Values (1, 15);
Insert Into Test_Transpose Values (2, 21);
Insert Into Test_Transpose Values (2, 22);
Insert Into Test_Transpose Values (2, 23);
Insert Into Test_Transpose Values (2, 24);
Insert Into Test_Transpose Values (2, 25);
Commit;
/

Select * From  Test_Transpose;
Output

IDS VAL
1 11
1 12
1 13
1 14
1 15
2 21
2 22
2 23
2 24
2 25

Select
   IDS,
        listagg(VAL, ',') within group (order by VAL) as VAL
From Test_Transpose
Group By
   Ids

Output :


IDS VAL
1 11,12,13,14,15
2 21,22,23,24,25

Monday 5 February 2018

TO_DATE Format


TO_DATE Format Masks
Format
Returns
D
Day of the week
DD
Day of the month
DDD
Numerical day of the year, 1 ~ 365 (366 for Leap years)
DAY
Full textual representation of the day, i.e. "Monday", "Tuesday", "Wednesday"
DY
Day in three letters, i.e. "MON", "TUE", "FRI"
W
Week of the month
WW
Week of the year
MM
Month in two digits, i.e. 01 = Jan, 02 = Feb,...12 = -Dec
MON
Month in three characters, i.e. "Jan", "Feb", "Apr"
MONTH
Full textual representation of the Month, i.e. "January", "February", "April"
RM
Month in Roman Characters (I-XII, I-Jan, II-Feb, ... XII-Dec)
Q
Quarter of the Month
YY
Last two digits of the year.
YYYY
Full year
YEAR
Year in words like "Nineteen Eighty Seven"
HH
Hours in 12 hour format
HH12
Hours in 12 hour format
HH24
Hours in 24 hour format ("military time")
MI
Minutes
SS
Seconds
FF
Fractional Seconds
SSSSS
Milliseconds
J
Julian Day i.e Days since 1st-Jan-4712BC to till-date
RR
If the year is less than 50 then Oracle considers the year as a 21st century date. If the year is greater than 50 then Oracle considers the year to be in the 20th century.