尝试这个
SELECT DISTINCT DECODE(A.RES, B.RES, I.INTEREST_CATEGORY, 'FALSE') AS FINAL_RES
FROM INTEREST I,
TABLE(SYS.DBMS_DEBUG_VC2COLl('music', 'movie', 'sport')),
(SELECT LENGTH(WM_CONCAT(COLUMN_VALUE)) AS RES
FROM TABLE(SYS.DBMS_DEBUG_VC2COLl('music', 'movie', 'sport'))) A,
(SELECT LENGTH(WM_CONCAT(DISTINCT I.INTEREST_CATEGORY)) AS RES
FROM TABLE(SYS.DBMS_DEBUG_VC2COLl('music', 'movie', 'sport')),
INTEREST I
WHERE I.INTEREST_CATEGORY = COLUMN_VALUE) B
WHERE I.INTEREST_CATEGORY = COLUMN_VALUE
此查询有 2 个部分
(SELECT LENGTH(WM_CONCAT(COLUMN_VALUE)) AS RES
FROM TABLE(SYS.DBMS_DEBUG_VC2COLl('music', 'movie', 'sport')))
这将计算作为输入提供的值的长度
第二次查询
(SELECT LENGTH(WM_CONCAT(DISTINCT I.INTERESET_CATEGORY)) AS RES
FROM TABLE(SYS.DBMS_DEBUG_VC2COLl('music', 'movie', 'sport')),
INTEREST I
WHERE I.INTEREST_CATEGORY = COLUMN_VALUE)
计算与数据库条目匹配的类别的长度。
然后最后比较这 2 个长度并返回 ID。
这是完成这项工作的一条很长的路,但如果您不想使用 group by(这是更小的编码),这可能是您查询的一种方法。
希望能帮助到你