|
FROM b
--WHERE SUBSTR(MOVES,1,1)<>'5' OR SUBSTR(MOVES,2,1) IN ('1','2')
) B2
WHERE (x_win>0 AND o_win IS NULL AND x_win=LENGTH(x) AND LENGTH(x)=LENGTH(o)+1
OR o_win>0 AND x_win IS NULL AND o_win=LENGTH(o) AND LENGTH(x)=LENGTH(o)
OR x_win is null and o_win is null and step=9
)
)
,TP AS (
SELECT /*+ materialize */ '123456789' AS tpl_org,tpl_str FROM (
SELECT '123456789' AS tpl_str FROM DUAL ----- tpl_id=0: 原样
UNION ALL SELECT '987654321' FROM DUAL ----- tpl_id=3: 顺时针180度
UNION ALL SELECT '369258147' FROM DUAL ----- tpl_id=6: 顺时针90度
UNION ALL SELECT '741852963' FROM DUAL ----- tpl_id=7: 逆时针90度
)
)
select * from(SELECT TRANSLATE(ttt.moves,tpl_org,tpl_str) moves
,TRANSLATE(tpl_org,tpl_str,ttt.board) board
,ttt.winner
FROM tp,ttt); |
|