EXISTS and sub-query cost i've just wondered if there's a difference in cost(memory,cpu) of an EXISTS or NOT EXISTS in following queries. Does it make a difference if i select NULL, 1 or columns?

1)

SELECT id 
FROM Parent p
WHERE NOT EXISTS
(
   SELECT NULL FROM Child c
   WHERE c.parent_Id = p.id
   AND c.x &lt;&gt; c.y
)


2)

SELECT id 
FROM Parent p
WHERE NOT EXISTS
(
   SELECT 1 FROM Child c
   WHERE c.parent_Id = p.id
   AND c.x &lt;&gt; c.y
)


3)

SELECT id 
FROM Parent p
WHERE NOT EXISTS
(
   SELECT * FROM Child c
   WHERE c.parent_Id = p.id
   AND c.x &lt;&gt; c.y
)


Option 1 is what i use normally, is there are difference at all or is it optimised to the same?
You should find that each example results in a LEFT SEMI ANTI JOIN with equal costs. 


  The Left Anti Semi Join operator returns each row from the first (top)
  input when there is no matching row in the second (bottom) input. If
  no join predicate exists in the Argument column, each row is a
  matching row.


Out of habit I tend to use the syntax in your second example, which you could argue signals intent better than the others.