select na zakresie "stringa"
taoo - 28-02-2006 13:12
select na zakresie "stringa"
Witam
W tabeli mam pola, które zawierają string w postaci: GD/08 SD/#tu numer#/2006 Czyli stały text/stały text/dowolny numer/rok
Muszę zrobić selecta na zakresie na przykład GD/08 SD/1/2006 do GD/08 SD/17/2006. BETWEEN nie za bardzo zadziała bo jak dam: SELECT * FROM Zaswiadczenie WHERE Nr IN ( 'G/08 SD/1/2006', 'G/08 SD/17/2006' ) to mi wybierze: G/08 SD/1/2006 G/08 SD/10/2006 G/08 SD/11/2006 G/08 SD/12/2006 [...] G/08 SD/17/2006
Czyli pominie od 2-9 :(
Prosze o jakieś sugestie jak to zrobić!
-- taoo http://taoo.boo.pl/
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 28-02-2006 13:12
taoo wrote: > Witam > > W tabeli mam pola, które zawierają string w postaci: > GD/08 SD/#tu numer#/2006 > Czyli stały text/stały text/dowolny numer/rok > > Muszę zrobić selecta na zakresie na przykład GD/08 SD/1/2006 do GD/08 > SD/17/2006. > BETWEEN nie za bardzo zadziała bo jak dam: > SELECT * FROM Zaswiadczenie WHERE Nr IN ( 'G/08 SD/1/2006', 'G/08 > SD/17/2006' ) > to mi wybierze: > G/08 SD/1/2006 > G/08 SD/10/2006 > G/08 SD/11/2006 > G/08 SD/12/2006 > [...] > G/08 SD/17/2006 > > Czyli pominie od 2-9 :( > > Prosze o jakieś sugestie jak to zrobić!
Dodaj kolumny sygnatura, numer, rok i załóż widok z sygnatura || '/' || numer || '/' || rok . Możesz zmienić nazwe tabeli i widokowi nadać starą nazwe, to aplikacje nawet tego 'nie zauważą'.
-- P.M.
Grzesiek G. - 28-02-2006 13:12
Paweł Matejski napisał(a): > taoo wrote: > >> Witam >> >> W tabeli mam pola, które zawierają string w postaci: >> GD/08 SD/#tu numer#/2006 >> Czyli stały text/stały text/dowolny numer/rok >> >> Muszę zrobić selecta na zakresie na przykład GD/08 SD/1/2006 do GD/08 >> SD/17/2006. >> BETWEEN nie za bardzo zadziała bo jak dam: >> SELECT * FROM Zaswiadczenie WHERE Nr IN ( 'G/08 SD/1/2006', 'G/08 >> SD/17/2006' ) >> to mi wybierze: >> G/08 SD/1/2006 >> G/08 SD/10/2006 >> G/08 SD/11/2006 >> G/08 SD/12/2006 >> [...] >> G/08 SD/17/2006 >> >> Czyli pominie od 2-9 :( >> >> Prosze o jakieś sugestie jak to zrobić! > > > Dodaj kolumny sygnatura, numer, rok i załóż widok z sygnatura || '/' || > numer || '/' || rok . > Możesz zmienić nazwe tabeli i widokowi nadać starą nazwe, to aplikacje > nawet tego 'nie zauważą'. > Dopóki nie spróbują zapisać do tego widoku :-(.
-- Grzegorz Gruza Odpowiadając usuń "spamerom_nie." z adresu!!!
Morff - 28-02-2006 13:12
Dnia 25-02-2006 o 09:15:36 Grzesiek G. <gruza@spamerom_nie.priv4.onet.pl> napisał:
> Paweł Matejski napisał(a): >> taoo wrote: >> >>> Witam >>> >>> W tabeli mam pola, które zawierają string w postaci: >>> GD/08 SD/#tu numer#/2006 >>> Czyli stały text/stały text/dowolny numer/rok >>> >>> Muszę zrobić selecta na zakresie na przykład GD/08 SD/1/2006 do GD/08 >>> SD/17/2006. >>> BETWEEN nie za bardzo zadziała bo jak dam: >>> SELECT * FROM Zaswiadczenie WHERE Nr IN ( 'G/08 SD/1/2006', 'G/08 >>> SD/17/2006' ) >>> to mi wybierze: >>> G/08 SD/1/2006 >>> G/08 SD/10/2006 >>> G/08 SD/11/2006 >>> G/08 SD/12/2006 >>> [...] >>> G/08 SD/17/2006 >>> >>> Czyli pominie od 2-9 :(
Na oracle napewno sie da (nie napisałeś jaka baza ) ale
mozna tak :
SELECT substr( dokument_no, instr(dokument_no,'/')+1, -- pierwszy slesz (mozesz zamienić na stałą liczbe jezeli zawsze w tym samym miejscu) instr(dokument_no,'/',instr(dokument_no,'/')+1)-instr(dokument_no,'/')-1 -- pozycja drugiego slesza ) FROM tabelka
jak ci zadziała to
select * from tabelka where <tocowyzej> between 1 and 17
-- Pozdrawiam Morff ---------------------- AQQ 141151 Powered by Opera/M2
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[help] Illustrator CS - =?ISO-8859-2?Q?znikn=B1=B3_Selection_?==?ISO-8859-2?Q?Tool_=28V=29?=
[mysql 4.0] SELECT t1.id, t1.foo FROM t1 oraz COUNT t2 w jednym zapytaniu.
SELECT MAX(nazwaPola) FROM tabela WHERE .... i ORA-01405: pobran? warto?ci? kolumny jest NULL
=?iso-8859-2?q?select_sum_i_dwie_tabele..._b=B3=EAdna_agregac ja?=
=?iso-8859-2?Q?=5BMySql=5D_-_select_po_5_rekordow_mniejssych_i_wi=EAkszych?=
=?iso-8859-2?Q?=5BMySql=5D_Select_wed=B3ug_nazwy_pola?=
=?ISO-8859-2?Q?[mysql]_Nie_potrafi=EA_zgrupowa=E6_selecta_(proste)?=
=?ISO-8859-2?Q?[MS_SQL]_update_wielu_p=F3l_na_raz_z_selecta?=
Wstawianie nowego wiersza w przypadku jego braku podczas SELECT w PostgreSQL
[pgsql] jak =?ISO-8859-2?Q?zrobi=E6_taki_select_=3F?=
zanotowane.pldoc.pisz.plpdf.pisz.plradioaktywni.htw.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|