Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  SQL: Kasutades RIGHT, et saada kätte veerust kolm viimast tähe märki märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale. Teata moderaatorile
otsing:  
TechGuy
HV kasutaja
TechGuy

liitunud: 25.12.2012




sõnum 25.02.2016 14:44:45 SQL: Kasutades RIGHT, et saada kätte veerust kolm viimast tähe märki vasta tsitaadiga

Tere,

Olen jagelenud suht pikalt, et saada kätte ühest veerust viimast kolme tähemärki ja liigutada need uude veergu nimega "veerg2"

Koodijupp millega saan enda tulemused kätte on lihtne.

Select RIGHT(RTRIM(Nimi), 3) Riik from TABLE


Aga tahan asja teha dünaamiliseks update lausega ja sealt algavad minu mured.

update #temp_table
set veerg2 = (Select RIGHT(RTRIM(nimi), 3) nimi2
from #temp_table a
where a.nimi is not NULL )


Tabel kuhu seda sisestatakse on olemas veerg2 ja selle hetkeline väärtus on NULL

Selle väitega tekib see probleem, et rohkem, kui üks kirje on seal (täpsem olla siis > 100 000)
Kas keegi oskab mind aidata, et kuidas teha seda koodi, et suudaks kõiki kirjete kolm viimast tähte lükata tabeli uude veergu?
Kommentaarid: 28 loe/lisa Kasutajad arvavad:  :: 1 :: 0 :: 22
tagasi üles
vaata kasutaja infot saada privaatsõnum
77Mark
HV vaatleja

liitunud: 06.05.2011




sõnum 25.02.2016 15:23:13 vasta tsitaadiga

Asenda esimene rida "update #temp_table" reaga "update a"
Kommentaarid: 6 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 6
tagasi üles
vaata kasutaja infot saada privaatsõnum
TechGuy
HV kasutaja
TechGuy

liitunud: 25.12.2012




sõnum 25.02.2016 16:03:32 vasta tsitaadiga

Mul eelnevalt on tekitatud ajutine tabel #temp_table kuhu on viidud sisse eelnevalt cast (null as varchar(50)) as veerg2
Kuhu sisestab siis selle update lausega.
Kommentaarid: 28 loe/lisa Kasutajad arvavad:  :: 1 :: 0 :: 22
tagasi üles
vaata kasutaja infot saada privaatsõnum
wiinanina
HV kasutaja

liitunud: 27.02.2003




sõnum 25.02.2016 19:08:40 vasta tsitaadiga

TechGuy kirjutas:
Mul eelnevalt on tekitatud ajutine tabel #temp_table kuhu on viidud sisse eelnevalt cast (null as varchar(50)) as veerg2
Kuhu sisestab siis selle update lausega.



kas järgnev siis ei tööta?

Update a
set veerg2 = RIGHT(RTRIM(nimi), 3)
from #temp_table a 
where a.nimi is not NULL
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 1
tagasi üles
vaata kasutaja infot saada privaatsõnum
TechGuy
HV kasutaja
TechGuy

liitunud: 25.12.2012




sõnum 26.02.2016 09:57:31 vasta tsitaadiga

Hakkas sedasi hoopis sedasi toimima:

update #temp_table
    set veerg2= RIGHT(RTRIM(nimi), 3)
    from #temp_table a 
    where a.nimi is not NULL
Kommentaarid: 28 loe/lisa Kasutajad arvavad:  :: 1 :: 0 :: 22
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  SQL: Kasutades RIGHT, et saada kätte veerust kolm viimast tähe märki
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.