T-SQL

Using MERGE to override OUTPUT clause limitations

The OUTPUT clause is a very powerful extension of T-SQL included in SQL Server 2005. But from time to time it needs some tweaks or workarounds to get the expected result. One such example is using OUTPUT with INSERT statements. There is a limitation that only columns from the table…

Read more
T-SQL

Specifying FILEGROUP in SELECT * INTO

SQL Server 2017 and SP2 for SQL 2016 bring small enhancement of SELECT .. INTO clause which offers more possibilities on how to solve some DBA head-scratching situations. It’s possible to specify FILEGROUP where the new table will be created. Till now it was only in the PRIMARY filegroup which…
T-SQL

Hrátky s Table Value Constructorem

Table Value Constructor (TVC) je v SQL Serveru sice již od verze 2008, ale vzhledem k tomu, jak moc si s ním můžeme vyhrát, nebude na škodu si projít pár zajímavých příkladů jeho použití. Jen pro zopakování si připomeňme, že TVC je set jednoho nebo více řádkových výrazů, pomocí kterých…
T-SQL

Používání CASE ve WHERE

Pokud vynecháme případné záludnosti, které nám může přinést použití příkazu CASE ve WHERE podmínce, je to někdy nadmíru šikovná pomůcka, která najde své využití především v různých uložených procedurách používaných jako datové zdroje pro Reporting Services reporty, případně jako chytrá pomůcka aplikaci pro získání filtrovaných datových setů pro gridy a…

Read more
T-SQL

Spojování Common Table Expressions

Common Table Expressions (CTE), dočasné pojmenované sety, představují mocný nástroj pro řešení nejrůznějších situací. Kromě jejich nejběžnějšího použití v případě, kdy potřebujeme rekurzivně procházet množinu dat, patří k jejich další zajímavé silné vlastnosti možnost spojování více CTE za sebou. V článku si ukážeme, jaký je syntaktický zápis a praktickou aplikaci….
T-SQL

LIKE: ESCAPE a COLLATE

Jak používat klauzuli LIKE ví asi každý. Ale u mladších kolegů se často setkávám s tím, že si neumí poradit s jejím využitím v prostředí s různými kolacemi a nebo nevědí, jak dosáhnout správného výsledku v případě, že hledají řetězec, který obsahuje některý se speciálních znaků, např. %. COLLATE Řešení…
T-SQL

COUNT() a eliminace NULL hodnot

Agregační funkce v SQL serveru ignorují hodnoty NULL. V praxi to znamená, že pokud agregujeme data ve sloupcích a některé řádky obsahují NULL hodnoty, tyto hodnoty se do naší agregace nezapočítají. Pro funkce typu SUM() je to očekávané chování, ale již ne tak pro AVG() nebo COUNT(). Funkce COUNT() se…

Read more
T-SQL

CTE with multiple anchors

Common Table Expression (CTE) offers a lot of options on how to play with it. One of them is using recursion with an anchor which is in the standard scenario one row. But we can have a more complex anchor: instead of one row, it can be i.e. union on…
T-SQL

Examples of TOP syntax

This article is just a short summary of TOP clause variants we can use. Especially the last one with a subquery isn’t so common and can be something new for you. Consider official documentation for more details on TOP usage and if you have any other interesting example don’t hesitate…