This is my query
SELECT dia
FROM CRES
WHERE pro_id = 2
AND 8103434563 LIKE
( SELECT dial_pattern||'%' FROM CDIVN WHERE dial_id = 1
);
Now select dial_pattern||'%' from CDIVN where dial_id = 1 can give multiple results. Hence, my main query is failing and reason is "sub query returns more than one row". This is because i have mentioned like.
but my logic requires like because i want 8103434563 with pattern match condition from table CDIVN.
How do i modify my query. Please help.
=======
CREATE TABLE CDIVN
( DIAL_PATTERN_ID NUMBER NOT NULL ENABLE,
DIAL_PATTERN VARCHAR2(30 BYTE) NOT NULL ENABLE,
OTHERS VARCHAR2(64 BYTE),
CONSTRAINT "CDIVN_PK" PRIMARY KEY ("DIAL_PATTERN_ID", "DIAL_PATTERN")
);
Insert into CDIVN (DIAL_PATTERN_ID,DIAL_PATTERN,OTHERS) values (1,'810','abc');
Insert into CDIVN (DIAL_PATTERN_ID,DIAL_PATTERN,OTHERS) values (1,'811','xyz');
Insert into CDIVN (DIAL_PATTERN_ID,DIAL_PATTERN,OTHERS) values (1,'812','aaa');
Insert into CDIVN (DIAL_PATTERN_ID,DIAL_PATTERN,OTHERS) values (5,'999','www');
Insert into CDIVN (DIAL_PATTERN_ID,DIAL_PATTERN,OTHERS) values (9,'333','ewe');
CREATE TABLE CRES
( PROFILE_ID NUMBER NOT NULL ENABLE,
PROFILE_NAME VARCHAR2(50 BYTE) NOT NULL ENABLE,
DIALLED_PATTERN VARCHAR2(15 BYTE),
CONSTRAINT "CRES_PK" PRIMARY KEY ("PROFILE_ID")
) ;
Insert into CRES (PROFILE_ID,PROFILE_NAME,DIALLED_PATTERN) values (1,'A','1');
Insert into CRES (PROFILE_ID,PROFILE_NAME,DIALLED_PATTERN) values (2,'B','5');
Insert into CRES (PROFILE_ID,PROFILE_NAME,DIALLED_PATTERN) values (3,'C','9');
I have CRES-profile id and one number with me from other sources and these are 1 and 81034345 respectively.
Now select DIALLED_PATTERN from CRES where PROFILE_ID=1;
This will give me DIALLED_PATTERN as 1.
Now select DIAL_PATTERN from CDIVN where DIALLED_PATTERN_ID = 1 ( DIALLED_PATTERN )
This will give DIAL_PATTERN as 810, 811, 812.
Now if 81034345 is matching with any one 810% or 811% or 812%. then i need 810% as my answer.
CRESandCDIVNtables to join?