- Merge OR Insert Query (If Record already there then it will update the existing record else Insert new Entry)
MERGE INTO TEST_TABLE temp
USING (
SELECT * FROM DUAL
) P
ON (temp.FIELD_1='PACK12' AND temp.FIELD_2='ITEM12')
WHEN MATCHED THEN
UPDATE SET
temp.FIELD_11 = 1234,
temp.FIELD_12 = 'VANSH_TEST',
temp.FIELD_13 = 'TEST_123'
WHEN NOT MATCHED THEN
INSERT (ID, FIELD_1, FIELD_2, FIELD_3, FIELD_4) VALUES(PRH_ID_SEQ.NEXTVAL, 'TEST1', 1234321, 'TEST3', 'TEST4')
Note: In above query, it will check FIELD_1 & FIELD_2 (Unique Constraints), If these 2 values are matching then it will update records (Except these 2 column) else it will insert new entry (2 Column must not be NULL)
- Insert Single Apostrophe
UPDATE <TABLE_NAME> SET <COLUMN_NAME_1>='12 O''CLOCK' WHERE <COLUMN_NAME_2>='TEST';
- Insert Ampersand sign (&)
UPDATE <TABLE_NAME> SET <COLUMN_NAME_1>='TOMM' || '&' || 'JERRY' WHERE <COLUMN_NAME_2>='TEST';
- Find duplicate rows
FROM <TABLE_NAME>
GROUP BY <COLUMN_NAME_1> , <COLUMN_NAME_2>, <COLUMN_NAME_3>
HAVING COUNT(*) > 1;
- Search keywords in all package
WHERE UPPER(TEXT) LIKE UPPER('%<SEARCH_KEYWORD>%') ESCAPE '\'
- Declare local var and group operation
TEMP_TABLE1 AS (SELECT DISTINCT TAB1.COL1, TAB2.COL2, SUM(TAB1.COL2) TOTAL_COL2
FROM TABLE1 TAB1, TABLE2 TAB2
WHERE
TAB1.COL4 = 'TEST'
AND TAB1.COL5 = TAB2.COL2
GROUP BY COL1, COL2)
-- FOR MORE TEMP TABLE (NO NEED TO WRITE 'WITH')
, TEMP_TABLE2 AS (SELECT ID, NAME FROM TABLE4)
SELECT DISTINCT TAB1.COL1, TAB1.TOTAL_COL2, TAB2.ID, TAB3.COL4, TAB4.COL1,
(TAB4.COL11 - NVL(TAB1.TOTAL_COL2, 0)) USD_CIV
FROM TABLE3 TAB3, TABLE4 TAB4, TEMP_TABLE1 TAB1, TEMP_TABLE2 TAB2
WHERE
TAB3.COL2 = TAB4.COL2
AND TAB3.COL1 = TAB1.COL1
AND TAB3.COL4 = TAB2.NAME;
- Know DB Name
SELECT TABLE_NAME, TABLE_SCHEMA FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME like '%outbound_messages%’;
- Copy data from one table to another
insert into from_table
select * from to_table;