• TeraByteMe (5/9/2013)


    Hello All,

    I was prescreened for a Senior SQL Program Analyst position and one of the questions asked is shown below. I have been around SQL quite a while but this question doesn't make sense to me. Can anyone help me decipher and understand what the correct answer is and how you got to it? I know this isn't a interview question/answer forum but the subject matter is definitely T-SQL and the correct use of it.

    6. Field f of a table is indexed. Which of the following query fragments is written so the index cannot be used? (Assume p1 and p2 are the correct data types for their role in each fragment.)

    a. where f > :p1

    b. where f between :p1 and dateadd( day, :p2, :p1)

    c. where dateadd( day, :p2 , f) > :p1

    d. where dateadd( day, :p2, :p1) < f

    e. where f not in( select …)

    Thanks

    They are trying to see if you understand SARGability. The correct answer here would be C. The way that is written it will have to compute the dateadd for every single row. All 4 of the other predicates and SARGable.

    _______________________________________________________________

    Need help? Help us help you.

    Read the article at http://www.sqlservercentral.com/articles/Best+Practices/61537/ for best practices on asking questions.

    Need to split a string? Try Jeff Modens splitter http://www.sqlservercentral.com/articles/Tally+Table/72993/.

    Cross Tabs and Pivots, Part 1 – Converting Rows to Columns - http://www.sqlservercentral.com/articles/T-SQL/63681/
    Cross Tabs and Pivots, Part 2 - Dynamic Cross Tabs - http://www.sqlservercentral.com/articles/Crosstab/65048/
    Understanding and Using APPLY (Part 1) - http://www.sqlservercentral.com/articles/APPLY/69953/
    Understanding and Using APPLY (Part 2) - http://www.sqlservercentral.com/articles/APPLY/69954/