I have two tables one is SifraArtikla
ID PuniNaziv 1 M-bus centrala tip MASTER PW60 sa adapterom 2 M-bus centrala tip MASTER PW120 sa adapterom 3 M-bus centrala tip MASTER PW250 sa adapterom
The second table ArtikalUsluge extend the SifraArtikla ID
Id ArtikalID 1 2
I need to get from PuniNaziv column ‘PW60’ if ArtikalID is 1 else if ID is 2 ‘PW120’ else if ID is 3 ‘pw250’ I tried with if else statment but it didn’t work. Can anyone give me some hints please.
DECLARE @OznakaCentrale NCHAR SET @OznakaCentrale = 'PW%' IF(@OznakaCentrale == SifreArtikala.PuniNaziv) SELECT SifreArtikala.PuniNaziv AS NazivCentrale FROM SifreArtikala INNER JOIN ArtikliUslugeNaloga ON ArtikliUslugeNaloga.Artikal1Id = SifreArtikala.Id
This is what I want to achive
Id NazivCentrale 1 PW60 2 PW120 3 PW250
Advertisement
Answer
You could use the base string functions to identify the value as being in between the text MASTER
and sa
. Then, join the two tables to restrict to only the ID
values in the first table from whose text you want to extract.
SELECT sa.ID, SUBSTRING(sa.PuniNaziv, CHARINDEX('MASTER', sa.PuniNaziv) + 7, CHARINDEX('sa', sa.PuniNaziv) - CHARINDEX('MASTER', sa.PuniNaziv) - 8) AS P_ID FROM SifraArtikla sa INNER JOIN ArtikalUsluge au ON au.ArtikalID = sa.ID