• Your question is incomplete since ther WHERE clause is missing the "= something" part. But that's just as a side note...

    If my limited knowledge is correct, you'll end up with an index or table scan since there's a function applied to both columns (either string concatenation or to sum both values).

    Here's a simple example:

    WHERE [column1] + [column2] ='abc'

    In order to figure out which rows would qualify SQL Server would need to compare all values of column1 that would either be empty (but not NULL), 'a', 'ab', or 'abc' together with each value of column2 either being empty (but not NULL), 'a', 'ab', or 'abc' and finally eliminate all rows not matching [column1] + [column2] ='abc'. It's even more complicated if we're talking about numeric values...

    I guess, SQL Server would simply perform a table or index scan.

    My preferred solution would be a computed, persisted, indexed column added to the table (if the number of queries and /or executions using such a where clause is significant). It depends 😉

    PS: I'm sure Gail (or any other one of the gurus available) will provide a much more reliable answer...



    Lutz
    A pessimist is an optimist with experience.

    How to get fast answers to your question[/url]
    How to post performance related questions[/url]
    Links for Tally Table [/url] , Cross Tabs [/url] and Dynamic Cross Tabs [/url], Delimited Split Function[/url]