(Select id,c1,c2,c3 from table where c1=x1 and c2=x2 ) union <<---block 1
(Select id,c1,c2,c3 from table where c1=x1 and c2=x2 ) union <<---block 2
...
(Select id,c1,c2,c3 from table where c1=x1 and c2=x2 ) union <<---block mth
which returns result
id|c1|c2|c3
------------
1 |..|..|..
2 |..|..|..
3 |..|..|..
.. .. .. ..
.. .. .. ..
nth.. .. ..
I want table which adds a no showing the result is obtained from which block of union
id|c1|c2|c3|blk
---------------
1 |..|..|..|1
2 |..|..|..|1
3 |..|..|..|2
.. .. .. ..|3
.. .. .. ..|3
nth.. .. ..|3
Add 1 more column to each query with the blk number:
(Select id,c1,c2,c3, 1 blk from table where c1=x1 and c2=x2 )
(Select id,c1,c2,c3, 2 from table where c1=x1 and c2=x2 )
...
(Select id,c1,c2,c3, <n> from table where c1=x1 and c2=x2 )
Just add a constant to the select clause:
SELECT id, c1, c2, c3, 1 AS blk FROM table WHERE c1 = x1 AND c2 = x2 UNION ALL -- block 1
SELECT id, c1, c2, c3, 2 FROM table WHERE c1 = x1 AND c2 = x2 UNION ALL -- block 2
...
SELECT id, c1, c2, c3, m FROM table WHERE c1 = x1 AND c2 = x2 -- block m