﻿--Step 1: Create table
CREATE TABLE sales (
    id      NUMBER PRIMARY KEY,
    qty     NUMBER,
    amount  NUMBER
);
--Step 2: Insert sample data
BEGIN
  FOR i IN 1..10000 LOOP
    INSERT INTO sales VALUES (
      i,
      MOD(i, 50),
      MOD(i, 500)
    );
  END LOOP;
  COMMIT;
END;
--Step 3: Create simple indexes
CREATE INDEX idx_qty    ON sales(qty);
CREATE INDEX idx_amount ON sales(amount);

--Step 4: Query with INDEX_MERGE hint
SELECT /*+ INDEX_MERGE(s idx_qty idx_amount) */
       *
FROM   sales s
WHERE  qty > 10
AND    amount > 200;
Step 5: Expected Execution Plan
TABLE ACCESS BY INDEX ROWID SALES
  INDEX MERGE
    SORT UNIQUE
      INDEX RANGE SCAN IDX_QTY
      INDEX RANGE SCAN IDX_AMOUNT
/*
This confirms:

✔ Two B-tree indexes used
✔ No bitmap
✔ Rowid lists merged
✔ Sort required
*/
