<i>Give me IF statements (preferably with nesting support) and variables, and there's nothing that cannot be done.</i><p>I know you were exaggerating here, but simple conditional statements aren't actually sufficient. You need some construct that allows repetition, if only implicitly. "while" loops would be easy, but even simple function calls suffice if you have function pointers (in fact, allowing function pointers alone ought to be enough, without conditionals or even variables).<p>At any rate, it's the lack vs. presence of repetition constructs that makes SQL not a full general-purpose language, where XSLT actually is.