• The best learning is by doing, and I agree that this site is extraordinary for this.

    Pick a problem that someone has posted and try to solve it yourself. You need not post your solution (you can always subscribe to the thread without posting to it) but compare what you come up with against what others suggest.

    Not all solutions are equal. Judge them based on elegance and performance. Learn how to reliably test for performance using tools and articles suggested on this site.

    Use the site to identify the most common, best-practice solutions for a wide variety of cases (e.g., creating a delimited string, parsing a delimited string, PIVOTs and UNPIVOTs for some examples) and then learn/understand the various approaches to other problems so that you can extend them to cases where it may not be so obvious that they apply.


    My mantra: No loops! No CURSORs! No RBAR! Hoo-uh![/I]

    My thought question: Have you ever been told that your query runs too fast?

    My advice:
    INDEXing a poor-performing query is like putting sugar on cat food. Yeah, it probably tastes better but are you sure you want to eat it?
    The path of least resistance can be a slippery slope. Take care that fixing your fixes of fixes doesn't snowball and end up costing you more than fixing the root cause would have in the first place.

    Need to UNPIVOT? Why not CROSS APPLY VALUES instead?[/url]
    Since random numbers are too important to be left to chance, let's generate some![/url]
    Learn to understand recursive CTEs by example.[/url]
    [url url=http://www.sqlservercentral.com/articles/St