Diskuze: Ořezání datového řetězce v Oracle SQL

Ostatní jazyky SQL SQL a databáze Ořezání datového řetězce v Oracle SQL

Avatar
JB_20
Člen
Avatar
JB_20:

Ahoj,

mám tabulku s číselnými hodnotami, které jsou na nějakém (libovolném) místě odděleny pomlčkou, např. 1234-567890123. Mohl byste mi poradit, jak ořezat tento datový řetězec, aby se v něm nevyskytovala část před pomlčkou (včetně pomlčky)? Zkoušel jsem fuknci ltrim, ale, jestli jsem to správně pochopil, ta ořezává jen jeden první, a ještě k tomu konkrétní, znak zleva, což mi nepomáhá.

Díky.

 
Odpovědět 6. dubna 10:38
Avatar
Honza
Člen
Avatar
Honza:

Ahoj, teď nemám přístup k Oracle, ale podívej se na funkce INSTR a SUBSTR. Jejich kombinací by se ti mělo povést udělat to co potřebuješ. Ta první ti vrátí pozici zadaného znaku (pomlčky) a pomocí druhé si vytáhneš část textu (zadáš počáteční pozici a počet znaků a funkce ti vrátí výsledný řetězec).

Pokud formát toho čísla je vždy stejný (4 čísla, pomlčka a 9 čísel), první funkci nebudeš potřebovat a můžeš použít rovnou SUBSTR.

Popis funkce INSTR: https://docs.oracle.com/…ons_1103.htm

Popis funkce SUBSTR: https://docs.oracle.com/…ons_2101.htm

Editováno 6. dubna 11:59
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 6. dubna 11:57
Snadnou cestou se daleko nedostanete, je tam velká tlačenice...
Avatar
JB_20
Člen
Avatar
JB_20:

Honzo,
je to přesně, jak říkáš. Děkuji Ti za pomoc :)

 
Nahoru Odpovědět 6. dubna 12:38
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.