两种取随机记录的写法。第二种比较好。
WITH src AS (SELECT COLUMN_VALUE str FROM TABLE (fn_split ('ABDE,EDCE,FEDC', ','))), num AS (SELECT str, ROW_NUMBER () OVER (ORDER BY NULL) rn FROM src), ran AS (SELECT TRUNC (DBMS_RANDOM.VALUE (1, 4)) rand FROM DUAL) SELECT * FROM num WHERE rn = (SELECT rand FROM ran)
SELECT str FROM ( SELECT COLUMN_VALUE str FROM TABLE (fn_split ('ABDE,EDCE,FEDC', ',')) ORDER BY DBMS_RANDOM.VALUE) WHERE ROWNUM = 1