It looks like this is ok. According to http://en.wikipedia.org/wiki/Set_operations_%28SQL%29 intersect and except remove duplicates and I would be surprised if they preserve order. Some dbs support intersect all and except all though.