praegune kellaaeg 19.06.2025 00:46:21
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
muri666
HV kasutaja
liitunud: 29.04.2004
|
26.02.2009 17:01:51
sql'is kuvatakse realt 1 sõna |
|
|
Sqlis ühes veerus on rida tekstiga: "tere-mida-iganes". Kuidas ma saaksin teha päringu, et päringu tulemus kuvaks ainult sõna "mida"? Et nagu päring näitaks andmeid peale esimest - kuni teise - alguseni.
|
|
Kommentaarid: 40 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
38 |
|
tagasi üles |
|
 |
kiiver
HV vaatleja
liitunud: 03.04.2003
|
26.02.2009 17:56:38
|
|
|
Oracles saab järgmise päringuga:
select substr('tere-mida-iganes'
, instr('tere-mida-iganes', '-') + 1
, instr('tere-mida-iganes', '-', 1, 2) - instr('tere-mida-iganes', '-') - 1
)
from dual;
|
|
Kommentaarid: 3 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
3 |
|
tagasi üles |
|
 |
mark11
HV vaatleja
liitunud: 28.01.2006
|
26.02.2009 18:57:42
|
|
|
mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);
-> 'www.mysql'
mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2);
-> 'mysql.com'
|
|
|
Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
1 |
|
tagasi üles |
|
 |
muri666
HV kasutaja
liitunud: 29.04.2004
|
27.02.2009 11:44:15
|
|
|
ms sqlis kuidagi ei taha tööle saada
|
|
Kommentaarid: 40 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
38 |
|
tagasi üles |
|
 |
kiiver
HV vaatleja
liitunud: 03.04.2003
|
27.02.2009 12:19:02
|
|
|
proovi nii
SELECT SUBSTRING('tere-mida-iganes'
, CHARINDEX('-', 'tere-mida-iganes')+1
, CHARINDEX('-', 'tere-mida-iganes', CHARINDEX('-', 'tere-mida-iganes')+1) - (CHARINDEX('-', 'tere-mida-iganes')+1)) |
|
|
Kommentaarid: 3 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
3 |
|
tagasi üles |
|
 |
muri666
HV kasutaja
liitunud: 29.04.2004
|
27.02.2009 12:41:48
|
|
|
jap, nii kuvatakse ainult sõna mida.
Aga kui mul lause "tere-mida-iganes" on tabelis, siis ei taha tulla
SELECT SUBSTRING('tabel.veerg'
, CHARINDEX('-', 'tabel.veerg')+1
, CHARINDEX('-', 'tabel.veerg', CHARINDEX('-', 'tabel.veerg')+1) - (CHARINDEX('-', 'tabel.veerg')+1)) |
|
|
Kommentaarid: 40 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
38 |
|
tagasi üles |
|
 |
reneSharp
HV kasutaja

liitunud: 13.11.2005
|
27.02.2009 13:53:20
|
|
|
declare @test table (sona varchar(255))
insert into @test (sona) values ('tere-mida-iganes')
insert into @test (sona) values ('tere-mida-veel-iganes')
select substring(t.sona,
charindex('-',t.sona)+1,
len(t.sona)-charindex('-',t.sona)-charindex('-',reverse(t.sona))
)
from @test t
|
Su lause töötaks kui kirjutada nii:
SELECT SUBSTRING(t.veerg
, CHARINDEX('-', t.veerg)+1
, CHARINDEX('-', t.veerg, CHARINDEX('-', t.veerg)+1) - (CHARINDEX('-', t.veerg)+1)) from @test t
|
või :
SELECT SUBSTRING(t.[veerg]
, CHARINDEX('-', t.[veerg])+1
, CHARINDEX('-', t.[veerg], CHARINDEX('-', t.[veerg])+1) - (CHARINDEX('-', t.[veerg])+1)) from @test t
|
Kuna veeru nimetus oli sul '' märkide vahel siis käsitleti seda kui stringi, mitte veergu select lauses.
|
|
Kommentaarid: 25 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
25 |
|
tagasi üles |
|
 |
mirko28
Aeg maha 1p

liitunud: 31.12.2003
|
24.04.2009 20:22:59
|
|
|
Võib ka luua funktsiooni Split, mis paneb stringi massiivi, stringi eraldajaks kriipsuke '-', sealt küsid teise elemendi.
|
|
Kommentaarid: 5 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
4 |
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
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.
|