Otočení pořadí znaků ve stringu se provede příkazem REVERSE
Výsledek
- Napsal Tonda Koutský
- Kategorie: SQL
Pokud potřebujeme zjistit duplicitu nebo počet stejných hodnot v určitém sloupci, použijeme k tomu jednoduchý fígl s agregační funkcí GROUP BY a "počítadlem" COUNT.
V příkladu zjišťuji počet stejných záznamů ve sloupci BarCode (čárový kód) z tabulky TabKodyZbozi. Tabulka je seřazena dle množství výskytů (funkce ORDER BY)
Výsledek
- Napsal Tonda Koutský
- Kategorie: SQL
U větších databází, vytíženějších SQL serverů nebo i špatně navržených programů může vlivem nedostatku výkonu docházet k blokování záznamů na SQL serveru nebo pomalým odezvám. Řešením může být samozřejmě optimalizace dotazů, zvětšení výkonu serveru, přidání RAM, ladění aplikace atd. V určitých případech lze výkonu pomoci i psaním dotazů, které využívají tzv.špinavého čtení. Princip spočívá v tom, že dotaz nečeká na ukončení transkakcí nad čtenými daty (nečeká na dokončení update a insert).
Výhody
V určitých případech může pomoci s rychlostí dotazu. Je méně náročný na paměť.
Nevýhody
Jelikož čteme data, která mohou být aktuálně měněna, není výsledek dotazu 100% relevantní. Používat tento způsob získání dat je tedy na pováženou a rozhodně to chce určitou znalost konkrétní databáze potažmo aplikace.
Kupříkladu, když budete psát dotaz, který ověřuje aktuální množství určité skladové položky, před přenosem do dokladu, je třeba získat přesná data. Zde NOLOCK nepoužívat. Ale když budete zjišťovat, jaká je obrátka této položky za poslední rok, tak bych se tento způsob nebál použít.
Lze samozřejmě použít i při spojení více tabulek
- Napsal Tonda Koutský
- Kategorie: SQL
Tímto skriptem lze importovat data do SQL pomocí příkazu BULK INSERT. Příkaz FIRSTROW není nutné uvádět, ale využívám ho, když je v prvním řádku záhlaví sloupců a to je třeba při importu igronovat.
Pro použití v praxi je však většinou třeba zadat cestu k souboru. Tu do procedury zadáme v proměnné. Jelikož je třeba cestu ukládat do uvozovek, nelze použít konstrukci BULK INSERT @Cesta FROM ... Nejlepší je použít dynamického SQL, celý příkaz vč.cesty vložit do proměnné a tu pak zavolat příkazem EXEC.
Zde je kompletní příklad, který v praxi používám (lze vychytat dalším vkládáním proměnných např. pro separátor, atd)
Vytvoření tabulky
Vytvoření csv souboru data.csv a uložení do adresáře C:\TestData (lze samozřejmě použít i UNC cestu třeba na serveru, ale SQL musí tento soubor vidět stejnou cestou jako program, který volá proceduru a do proměnné vkládá cestu)
Skript pro import dat.
Výsledek
Ještě je nutno podotknout, že daný uživatel musí mít na SQL práva bulkadmin
- Napsal Tonda Koutský
- Kategorie: SQL
Pokud potřebujete s datem pracovat jako s textovým řetězcem, je třeba jej přetypovat (změnit datový typ). To můžete provést buď funkcí CAST nebo CONVERT.
Příklad
Výsledek
Při použití funkce CONVERT lze určit formát datumu.
Pro příklad uvedu 3 typy
Výsledek
Přetypování lze samozřejmě použít (spíše je nutné) při sčítání řetězců
Text lze zpátky přetypovat na datum. S datem v textové formě nelze dále pracovat jako s datem, ale jen jako s textem a tom může být nežádoucí.
Zde je script pro výpis možností přetypování datumu
- Napsal Tonda Koutský
- Kategorie: SQL
Dědek na cestách Počet článků: 3
Původně to měla být kategorie o cestách, které podniknu na svém starém kole-dědkovi. Pak se mě název zalíbil a říkám si, že jednou budu taky dědek, vlastně syna už na to mám dost velkýho, a tak nadčasově tuto kategorii nechám pojmenovanou takto. Takže zde nalezneš zápisky z cest.
SQL Počet článků: 39
Zde je můj blog o SQL. Je to takový můj tahák.
IT Počet článků: 13
Moje poznámky z instalací
Strana 9 z 11