1

私は2つのテーブルを持っています:Table1Table2Table1列、、およびがRECORDIDありDATASOURCETYPEますSTRINGCLOBが、Table2列、、RECORDIDおよびTIMESTAMPがありますCLICKTYPE。次のようにSTRINGCLOB、指定されたに一致する場合、列からclobXML文字列'book'を検索するクエリを作成しました。DATASOURCETYPE

SELECT SUBSTR(stringclob, instr(stringclob, 'type>')+5
                        , instr(stringclob,'</type') 
                             - instr(stringclob, 'type>')-5
             ) r_type from Table1
 where DataSourceType = 'Source1'
   AND SUBSTR(stringclob, instr(stringclob,'type>')+5
                        , instr(stringclob, '</type')
                              - instr(stringclob, 'type>')-5
             )
     like '%book%'

ここで、先月に記録されたSTRINGCLOB列( )からの'%book%'文字列(ANDなど)とのすべての出現を検索してカウントしたいと思います。2つの異なるテーブルからのデータのクエリに苦労しています。何か考えはありますか?Table1TIMESTAMP > '01-Nov-12' AND TIMESTAMP < '01-Dec-12'CLICKTYPE <> 'Type1'

本当にありがとう、

私。

4

1 に答える 1

2

これは、値が である record_type の数を取得する方法ですbook

WITH t
       AS (SELECT   '<?xml version="1.0" encoding="UTF-8"?>
                       <record>
                        <record_number>12345</record_number>
                         <record_type> book </record_type>
                       </record>'
                       STRINGCLOB
             FROM   DUAL
           UNION ALL
           SELECT   '<?xml version="1.0" encoding="UTF-8"?>
                          <record>
                            <record_number>6789</record_number>
                            <record_type> book </record_type>
                         </record>'
                       STRINGCLOB
             FROM   DUAL)
SELECT   COUNT (1) total
  FROM   t
 WHERE   xmltype (t.STRINGCLOB).EXTRACT ('//record_type/text()') LIKE '%book%';

合計

2

ここで、record_id に基づいて、テーブル 2 と結合する場合

 SELECT   COUNT (1) total
   FROM   table1 t1, table2 t2
  WHERE   xmltype (t1.STRINGCLOB).EXTRACT ('//record_type/text()') LIKE
            '%book%'
         AND t1.record_id = t2.record_id
         AND t1.DataSourceType = 'Source1'
         AND (TRUNC (t2.timestamp) > '01-Nov-12'
              AND TRUNC (t2.timestamp) < '01-Dec-12')
         AND t2.clicktype <> 'Type1'
于 2012-12-06T14:44:34.880 に答える