Tímto příkazem lze vkládat části řetězce do jiného, popř. při tom smazat určitý počet znaků
Příklad: Text 'Tonda není žádný blbec' potřebujeme změnit
Výsledek: Tonda je blbec
- Napsal Tonda Koutský
- Kategorie: SQL
Někdy nastane situace, kdy je třeba zpracovat sadu příkazů opakovaně. K tomu lze použít příkaz WHILE.
Pokud je splněna podmínka definovaná za WHILE je zpracován blok příkazů mezi BEGIN a END. Na konci bloku je opět testovaná podmínka a pokud je splněna cyklus probíhá opakovaně. Pokud v průběhu cyklu potřebujeme zpracování ukončit a pokračovat ve zpracování příkazů za cyklem použijeme příkaz BREAK. Naopak, pokud chceme pokračovat dále, použijeme CONTINUE (vzhledem k tomu, že smyčka by beztak pokračovala dále, tak se CONTINUE prakticky nepoužívá)
Praktická ukázka i s použitím BREAK
Pozn. Cyklus by měl proběhnout 10x, ale vzhledem k podmínce uvnitř cyklu skončí při 7-mém průběhu
Výsledek:
- Napsal Tonda Koutský
- Kategorie: SQL
Sloučit více textových řetězců do jednoho můžeme dvěma způsoby.
1) Součet textových řetězců
Toto řešení vypadá jednoduše, ale musíme dát pozor na dvě věci.
A) sčítaná proměnná nesmí mít hodnotu NULL protože výsledek by byl také null
B) číslo je třeba přetypovat na text
2) Použití CONCAT
Toto řešení má výhodu, že mu nevadí hodnota NULL a k číslům se chová jako k textu (což ovšem někdy může být nežádoucí)
Příklad sloučení textových a číselných hodnot.
Obě metody vrátí stejnou hodnotu: Výsledek je 123.40 Kč !!!
- Napsal Tonda Koutský
- Kategorie: SQL
Jsou občas situace, kdy si zaťukáte na čelo "Jak tohle mohl někdo vymyslet". Třeba dnes jsem řešil v podnikovém IS přepočet jednotek na kartách zboží. Nějaký můj předchůdce vyrobil na kartách zboží "okýnko" do kterého se zapisuje přepočítací koeficient. A to tak že včetně měrných jednotek takže např: "18,33 kg/m" No a teď po mě chtějí naprogramovat počítatelný sloupec, kde se bude automaticky počítat hmotnost skladové položky. A jak mám asi násobit textovým řetězcem? :-)
Takže řešením bylo naprogramovat dva nové sloupce - číselný pro koeficient a textový pro měrné jednotky. No a aby obchoďáci nemuseli přepisovat hodnoty asi u 13 tisíc karet, vyrobil jsem si script na nakrmení nových polí z původních hodnot.
Zde je skript a lze použít i na jakékoliv vyseparování textových nebo číselných hodnot ze smíšeného řetězce.
Nutno dodat, že k výsledku jsem došel ještě i jinou cestou, ale nakonec jsem si pro univerzálnost zvolil toto řešení.
Vstup: @Vstup= '18,3 Kg/m'
Výsledek: @Text='Kg/m' , @Cislo = 18.30
Vstup: @Vstup= ' 1 8,3 Kg/m '
Výsledek: @Text='Kg/m' , @Cislo = 18.30
Vstup: @Vstup= 'Ton12da55Kouta44'
Výsledek: @Text='TondaKouta' , @Cislo = 125544.00
Pozn: vstupní proměnná je @Vstup, výstupní jsou @Text a @Cislo
Jak skript funguje? Triviálně. Posuzuje vždy poslední znak v řetězci, pokud znak není číslo, přidá ho do proměnné @Text, jinak ho přidá do proměnné @CisloText. Pak poslední znak odmaže a pokračuje opět v porovnávání posledního znaku. Nakonec odstraní mezery na začátku a konce textu a číslo přetypuje z textového řetězce na desetinné číslo.
Jak říkám, k výsledku lze dojít i jinou cestou, ale mě se tato líbí pro možnou modifikaci a užití i na jiné případy.
- Napsal Tonda Koutský
- Kategorie: SQL
Tímto způsobem můžeme v řetězci zaměnit část textu.
Příklady
Výsledek: 10.10.2017
Výsledek: Tonda je blbec
- 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 10 z 11