Oracle-opsætning :
OPRET TABEL tabelnavn ( S_NO, id, Pid ) ASSELECT 1, 123, 'PAQ123' FRA DUAL UNION ALLSELECT 2, 433, 'WSD3FF' FRA DUAL UNION ALLE VÆLG 3, 565, 'PAS45E' FRA DUAL UNION ALLSELECT 4, 123, 'PAQ123X' FRA DUAL UNION ALLSELECT 5, 433, 'WSD3FFY' FRA DUAL UNION ALLSELECT 6, 123, 'PAQ123Z' FRA DUAL;
Forespørgsel :
SELECT *FROM ( SELECT t.*, ( SELECT COUNT(*) FROM table_name x WHERE t.id =x.id AND LENGTH( t.Pid ) 0;
Output :
S_NO ID PID NUM_MATCHES---------------- ---------- ------- ---------- 1 123 PAQ123 2 2 433 WSD3FF 1
Hvis du ønsker at få kampene så kan du bruge en samling:
OPRET TYPE-strengliste SOM TABEL OVER VARCHAR2(100);/
Forespørgsel :
SELECT *FROM ( SELECT t.*, CAST( MULTISET( SELECT PID FROM table_name x WHERE t.id =x.id AND LENGTH( t.Pid )
eller (da jeg ikke er sikker på MULTISET
er i 10g):
SELECT *FROM ( SELECT t.*, CAST( ( SELECT COLLECT( PID ) FROM table_name x WHERE t.id =x.id AND LENGTH( t.Pid )
Output
S_NO ID PID MATCHES ---------- ---------- ------- ------------- ----------------------- 1 123 PAQ123 TEST.STRINGLIST('PAQ123X','PAQ123Z') 2 433 WSD3FF TEST.STRINGLIST('WSD3FFY')