Online 146 uživatelů Přihlášení | Registrace | Zaslat heslo | Prohlížení bez přihlášení

 

SQL pro naproste zacatecniky - primitivni otazky a odpovedi [ ID: 16848 ] - [ Počítače (hardware, software) / Programování ]
1 / 29
FEAR   15:37:44 25.04.2019
YURA [ 15:35:56 25.04.2019 ]:
UPDATE table_name
SET strana = 'LEVÁ'
WHERE 1=1
AND strana = 'LEV'
YURA   15:35:56 25.04.2019
ARDOR [ 09:36:24 25.04.2019 ]: Super, dekuji, pomohlo!

A eventualne abych to nemusel mazat, slo by to jen nejak elegantne aktualizovat?
ARDOR   09:36:24 25.04.2019
YURA [ 09:31:17 25.04.2019 ]:
DELETE FROM table_name WHERE condition

TZN, musíš si jen napsat dobře podmínku, což je zrovna u tohohle případu fakt jednoduché:

WHERE STRANA  = 'LEV';

Zkontroluj si to nejdřív než cokoli smažeš přes:  select * from TABULKA_S_DATY WHERE STRANA  = 'LEV';
YURA   09:31:17 25.04.2019
dik za predchozi rady :)

Mám SQL DB, kde došlo k přidání záznamů bez diakrtiky (při přidávání nebyl txt převeden do UTF8)
Záznamy se promýchaly a  jsou teď dohromady s diakritikou i bez diakritiky.
Napadlo mě vylistovat to nějkaým příkazem a smazat ty, co jsou špatně a následně tam přidat ty opravené (ikdyž pokud by šlo zrovna udělat update a přepsat to zrovna, tak by to taky šlo)
Bohužel sem v této oblasti dost levý a nerad bych smazal něco, co bych neměl.
Jeden sloupec STRANA, kde by se to dalo jasně identifikovat má v orignále s diakritikou napsáno: LEVÁ, ten zmršený jen LEV
Potřeboval bych tedy poradit, jak smazat všechny řádky záznamů, kde je hodnota LEV, ale aby zůstaly ty LEVÁ
Dokáže mi někdo poradit?


KALKAL   22:02:06 28.01.2019
PKV [ 17:37:19 10.01.2019 ]: Nesetkal jsem se tím, ale mohl by jsi sem dát tu procku celou a ne jen v náznacích?
PKV   17:37:19 10.01.2019
Setkal se někdo s tím, že v proceduře neproběhl update @variable table parametrem procedury?

Kód vypadá asi takto:

Declare procedure AB @par1, @par2, @par3

declare @table xxx
... deklarace tabulky

Insert into @table "něco"
update @table set columnX = @par3

--------------------------------------------------
Ten update na posledním řádku neproběhne, pokud si předem nezavolám select @par3.
KALKAL   23:34:52 05.07.2018
YURA [ 08:52:13 12.06.2018 ]: A potřebuješ to tam duplikovat nebo by ti stačil pohled, kterym si ta data spojíš do jedné tabulky?
Pokud by jsi to chtěl opravdu duplikovat v obou tabulkách, tak se na to používá takzvaná update from Table.
Tady je příklad:
UPDATE
    t1
SET
    t1.column = t2.column
FROM
    Table1 t1
    INNER JOIN Table2 t2
    ON t1.id = t2.id;
YURA   08:52:13 12.06.2018
Mam dva soubory Adresar_vse_Y, Sbirka
V souboru Adresar_vse_Y jsou dva sloupce Original + Zkratka
V sobouru Sbirka je soupec Sberatel, ktery obsahuje stejne hodnoty jako sloupec Original v Adresar_vse_Y
Potrebuju do souboru Sbirka sloupce Osoba vepsat nove hodnoty, ktere jsou obsazeny v sloupci Zkratka v souboru Adresar_vse_Y, tak aby na radku sedely Sberatel=Original
BEAVIS   07:26:31 11.04.2018
MOORHED [ 15:08:29 09.04.2018 ]: Mno... kdyby to nebylo na Javě tak cajk. Kdyžtak ověřená alternativa se kterou jsem spokojen je https://www.heidisql.com/
MOORHED   15:08:29 09.04.2018
Rád bych sdílel naprosto skvělou zkušenost s free toolem DBeaver https://dbeaver.jkiss.org/download/
je fakt skvělý (trošku neohrabaně se připojuje člověk k celému serveru, ale dá se to )
YURA   14:57:52 14.03.2018
Mam dva soubory Adresar_vse_Y, Sbirka
V souboru Adresar_vse_Y jsou dva sloupce Original + Zkratka
V sobouru Sbirka je soupec Sberatel, ktery obsahuje stejne hodnoty jako sloupec Original v Adresar_vse_Y
Potrebuju do souboru Sbirka sloupce Osoba vepsat nove hodnoty, ktere jsou obsazeny v sloupci Zkratka v souboru Adresar_vse_Y, tak aby na radku sedely Sberatel=Original
YURA   16:53:33 12.03.2018
FEAR [ 15:44:27 12.03.2018 ]: jupiiii, dunguje to! Dekuji tuze!
FEAR   15:44:27 12.03.2018
YURA [ 14:59:09 12.03.2018 ]: hmm skus % nahradit *
YURA   14:59:09 12.03.2018
FEAR [ 14:27:30 12.03.2018 ]: Ok, dekuji s tim vyhledavanim to zkusim.
Jen mi po opravenim napsalo, ze to ovlivni 0 radku, i kdyz je to nesmysl - viz priloha
[url=https://megaupload.cz/nahled/Lolalita_13.gif][img=https://mini.megaupload.cz/200/Lolalita_13.gif][/url]
FEAR   14:27:30 12.03.2018
YURA [ 14:21:17 12.03.2018 ]: nie UPPER nahrad UCASE.
Ja to pisem s Oracle SQL syntaxou a funkciami ktore pozna Oracle. Vacsina je nahraditelna. Takze ak ti access vyhodi ze nepozna funkciu su dve moznosti:
1) preklep
2) funkcia existuje v oracli takze treba zadat do googlu <funkcia> ACCESS equivalent
YURA   14:21:17 12.03.2018
FEAR [ 12:32:36 12.03.2018 ]: Ted uplne nerozumim - jakoze to mam mit vsechno verzalkama aby to sql precetlo? To jsem zkusil ale vysledek je stejny

UPDATE LOKALITA_VSE_Y2
SET LOK_OBLAST = 'MORAVA',
    LOK_ZKRATKA = TRIM(LEFT(ORIGINAL_LOKALITA,13))
WHERE UPPER (ORIGINAL_LOKALITA) LIKE '%MORAVA%';
FEAR   12:32:36 12.03.2018
YURA [ 12:23:34 12.03.2018 ]:
https://www.techonthenet.com/access/functions/string/ucase.php
YURA   12:23:34 12.03.2018
FEAR [ 11:12:46 07.03.2018 ]:
Upravil jsem to:

update Lokalita_vse_Y2
set LOK_OBLAST = 'Morava',
    LOK_ZKRATKA = TRIM(LEFT(ORIGINAL_LOKALITA,13))
WHERE UPPER(ORIGINAL_LOKALITA) like '%MORAVA%' ;

Ale zas nejaky problem
Nedefinovana funkce UPPER ve vyrazu
FEAR   11:12:46 07.03.2018
YURA [ 10:36:08 07.03.2018 ]: skus nahradit substr tymto LEFT(ORIGINAL_LOKALITA,13)
TRIM by mal access poznat, ten tam nechaj nech zbytocne neukladas prazdne znaky.
YURA   10:36:08 07.03.2018
FEAR [ 10:31:19 07.03.2018 ]: ja to mastim jen pres access
1 / 29