Forum » Programiranje » SQL query z ignoriranjem določenih mest v polju
SQL query z ignoriranjem določenih mest v polju
Seth ::
Ima kdo idejo kako narediti naslednje?
Imam dve tabeli v MS SQL serverju
tabela1:
ID | Ime
XX111111 | Miha
XX222222 | Janez
XX333333 | Jože
XX444444 | Neža
tabela2:
ID | Mesto
111111 | Ljubljana
222222 | Maribor
333333 | Koper
444444 | Celje
A je možno narediti tak query, da bi ignoriral prvi dve mesti ID polja v tabeli 1. Takel bi moral biti rezultat
Miha | Ljubljana
Janez | Maribor
Jože | Koper
Neža | Celje
Naslednji query sicer naredi zgornje, ampak sta obe polji ID v obeh tabelah enaka:
SELECT bo.tabela1.Ime, dbo.tabela2.Mesto FROM dbo.tabela1 INNER JOIN dbo.tabela2 ON dbo.tabela1.ID = dbo.tabela2.ID
tnx
lp,
Seth
Imam dve tabeli v MS SQL serverju
tabela1:
ID | Ime
XX111111 | Miha
XX222222 | Janez
XX333333 | Jože
XX444444 | Neža
tabela2:
ID | Mesto
111111 | Ljubljana
222222 | Maribor
333333 | Koper
444444 | Celje
A je možno narediti tak query, da bi ignoriral prvi dve mesti ID polja v tabeli 1. Takel bi moral biti rezultat
Miha | Ljubljana
Janez | Maribor
Jože | Koper
Neža | Celje
Naslednji query sicer naredi zgornje, ampak sta obe polji ID v obeh tabelah enaka:
SELECT bo.tabela1.Ime, dbo.tabela2.Mesto FROM dbo.tabela1 INNER JOIN dbo.tabela2 ON dbo.tabela1.ID = dbo.tabela2.ID
tnx
lp,
Seth
WarpedGone ::
oracle sintaksa:
WHERE tabela1.X LIKE '__' || tabela2.X
OT: kdor je potuhtal INNER JOIN sintakso si zasluži brco v rit in delovno knjižico v glavo
WHERE tabela1.X LIKE '__' || tabela2.X
OT: kdor je potuhtal INNER JOIN sintakso si zasluži brco v rit in delovno knjižico v glavo
Zbogom in hvala za vse ribe
klemenSLO ::
select t1.ime,t2.mesto from tabela1 t1
join tabela2 t2 on RIGHT(t1.id,6) = t2.id
klasičen join samo z right se znebiš xx da ti bo sploh uspešno joinal.
join tabela2 t2 on RIGHT(t1.id,6) = t2.id
klasičen join samo z right se znebiš xx da ti bo sploh uspešno joinal.
Seth ::
Sem tudi prišel do svoje rešitve, zgornji v zgornji query sem dodal SUBSTRING in izgleda takole:
SELECT dbo.tabela1.Ime, dbo.tabela2.Mesto
FROM dbo.tabela1 INNER JOIN
dbo.tabela2 ON SUBSTRING(dbo.tabela1.ID, 3, 6) = dbo.tabela2.ID
SUBSTRING(dbo.tabela1.ID, 3, 6) začne brati v tabeli ID kolono šele od tretjega mesta naprej za 6 mest (rezultat XX111111 -> 111111)
SELECT dbo.tabela1.Ime, dbo.tabela2.Mesto
FROM dbo.tabela1 INNER JOIN
dbo.tabela2 ON SUBSTRING(dbo.tabela1.ID, 3, 6) = dbo.tabela2.ID
SUBSTRING(dbo.tabela1.ID, 3, 6) začne brati v tabeli ID kolono šele od tretjega mesta naprej za 6 mest (rezultat XX111111 -> 111111)
Seth
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | SQL backup importOddelek: Programiranje | 1058 (860) | meh |
» | [SQL] Unikatni izpisiOddelek: Programiranje | 2211 (1598) | 111111111111 |
» | MS Access (strani: 1 2 )Oddelek: Programiranje | 7363 (5421) | travica |
» | MYSQL vprašanjeOddelek: Programiranje | 1786 (1401) | MrBrdo |
» | MySQL združevanje tabel..Oddelek: Programiranje | 1711 (1526) | Nemenej |