You can try recursive queries , or a plain UDF which picks the last word in the text.the recursive solution is like this ...CREATE TABLE MYADD(ID INTEGER,ADDRESS VARCHAR(100))UNIQUE PRIMARY INDEX(ID);INSERT INTO MYADD VALUES(1, 'address = h no. 532 St. No. 99 Lane 6, Mall road ISLAMABAD');INSERT INTO MYADD VALUES(2, 'address = h no. 532 St. No. 99 Lane 6, Mall end road PESHAWAR');INSERT INTO MYADD VALUES(3, 'address = h no. 532 St. No.1 Mall end road PESHAWAR');WITH RECURSIVE ADDTBL(ID, ADDRESS, LVL, POS)AS(SELECT ID, ADDRESS, 0 LVL, POSITION(' ' IN ADDRESS) POSFROM MYADDUNION ALLSELECT ID, SUBSTRING(ADDRESS FROM POS+1) NEWADD, LVL+1 NEWLVL, POSITION(' ' IN NEWADD) NEWPOS FROM ADDTBLWHERE POS > 0)SELECT ID, ADDRESS AS CITYFROM ADDTBLQUALIFY ROW_NUMBER() OVER(PARTITION BY ID ORDER BY LVL DESC) = 1;replace "ID" in your SQL with the relevant key columns of your table.
how to extract Islamabad and PESHAWAR from following addresses, using sql functionaddress = h no. 532 St. No. 99 Lane 6, Mall road ISLAMABADaddress = h no. 532 St. No. 99 Lane 6, Mall end road PESHAWARaddress = h no. 532 St. No.1 Mall end road PESHAWAR