error using count() function

  • Can someone explain the results of this to me.

    select count(*) from table1 where column1 in (select column1 from table2)

    In this case table2 does not have a column called column1.

    I would expect the result to be 0 or an error, column does not exist.

    What I found was that it returned the full result set of table1.

    Thanks for your help

  • Not having done any testing, I suspect the reason why is the same as what is discussed here:

    http://sqlservercode.blogspot.com/2006/06/delete-and-subquery-in-problem.html

  • Thanks for the link and moving forward I will use the ANSI standard

    DELETE T1

    FROM Table1 T1

    JOIN Table2 T2 ON T1.ID = T2.ID

    Just out of curiosity do people consider this a bug in the count() function or is there a reason behind it working the way it does?

Viewing 3 posts - 1 through 2 (of 2 total)

You must be logged in to reply to this topic. Login to reply