View Full Version : [SQL] Come fare una Select che incrementi un valore...
Io seleziono dei campi da una tabella, ma vorrei che nel risultato (che vado a scrivere in un file) ci sia una colonna con un progressivo:
Es:
Progressivo tel Casa tel Cell
1 xxxxxxxxxx xxxxxxx
2
3
4
5
6
Questa cosa è sfiziosa....
Vediamo...database su cui vuoi fare questa cosa ?
Db2.......
sai che forse ho la soluzione! (me l'hanno inviata per email!)
INSERT INTO TAB (IDOBJECT, ) SELECT MAX(IDOBJECT)+1, FROM PISYSTEMPROPERTIES;
..però è solo in inserimento...
ora la provo!
come ti hanno già detto è sufficiente nella stringa SQL inserire + 1 ;)
SELECT CAMPOVALORE+1 FROM TABELLA
Ma se CAMPOVALORE non esiste in TABELLA ?
intendi dire 'come si comporta nel caso in cui SELECT CAMPOVALORE da 0?'
nel caso in cui SELECT CAMPOVALORE da 0 il risultato di SELECT CAMPOVALORE + 1 da 1...
Se invece il campo non esiste in tabella... amico, hai sbagliato la query!!! :eek: :D :D :D
Appunto...era quello che voleva il nostro amico ;)
Data TABELLA così:
Campo1 Campo2 Campo3
xxxx
xxxx
xxxx
Voleva ottenere
CONT Campo1 Campo2 Campo3
1 xxxxx
2 xxxxx
3 xxxxx
alt... aspetta... mi sa che sono io che non ho capito una ciolla... :eek:
Originariamente inviato da cionci
Appunto...era quello che voleva il nostro amico ;)
Data TABELLA così:
Campo1 Campo2 Campo3
xxxx
xxxx
xxxx
Voleva ottenere
CONT Campo1 Campo2 Campo3
1 xxxxx
2 xxxxx
3 xxxxx
...ecco, appunto... non avevo capito una ciolla... :mc:
Nightingale
07-09-2004, 21:11
Originariamente inviato da petitof
Db2.......
sai che forse ho la soluzione! (me l'hanno inviata per email!)
INSERT INTO TAB (IDOBJECT, ) SELECT MAX(IDOBJECT)+1, FROM PISYSTEMPROPERTIES;
..però è solo in inserimento...
ora la provo!
direi che in inserimento va più che bene! :) Ammesso e concesso che su db2 sia supportata come sintassi (io db2 non l'ho mai visto).
Quello che non capisco è cosa intendi con "...è solo in inserimento". In una SELECT ti tiri su il campo così come è, no? Mentre in UPDATE puoi fare la stessa cosa con una subquery....
Originariamente inviato da petitof
Db2.......
finalmente qualcuno che usa database e non giocattoli :D
SELECT ROW_NUMBER() OVER (ORDER BY CHIAVE ASC) AS CONT,
COLONNA1, COLONNA2 FROM TABELLA
se non fosse corretto dai un occhio alla documentazione per la sintassi, ma sono sicuro che e' quello che cerchi :O
Originariamente inviato da petitof
Db2.......
aspe', orrido dubbio... non intenderai mica DB2/390 o DB2/400 ???? :eek:
se non ricordo male la sintassi che ti ho indicato prima non e' supportata (nè mai lo sarà al ritmo con cui implementano su quelle piattaforme).
ho testato su db2/400 ma mi sembra che la tua non giri king... :boh: ;)
non so se mi manchi qualche ptf... :D che forse uscirà nel 2012...
la insert non mi funziona!
la tua select in effetti era la query che cercavo fin dal principio!!
select ROW_NUMBER() OVER (ORDER BY CHIAVE ASC) AS CONT,dwdstiuf,ROW_NUMBER() OVER (ORDER BY CHIAVE ASC) AS CONT,dwdstita,'2004-00:00:00' from dwatkta order by dwprukey
però mi va in errore...."CHIAVE" cosa sarebbe?
SQL0206N "CHIAVE" is not valid in the context where it is used.
SQLSTATE=42703
ciao!
ah.. ho installato db2 v8 della ibm su piattaforma windows...
grazie kingv!!
dal sito della ibm:
SELECT ROW_NUMBER() OVER(), TABNAME FROM SYSCAT.TABLES WHERE TABSCHEMA='DB2ADMIN'
1 TABNAME
-------------------------------------------
1 CONSECUTIVE_NUMS
2 DATES
3 EXPLAIN_ARGUMENT
4 EXPLAIN_INSTANCE
5 EXPLAIN_OBJECT
6 EXPLAIN_OPERATOR
7 EXPLAIN_PREDICATE
8 EXPLAIN_STATEMENT
9 EXPLAIN_STREAM
10 SALES_DETAIL
11 SALES_DETAIL_CLS
11 record(s) selected.
:sofico:
Originariamente inviato da mailand
ho testato su db2/400 ma mi sembra che la tua non giri king... :boh: ;)
non so se mi manchi qualche ptf... :D che forse uscirà nel 2012...
leggi bene le mie risposte, ho detto che su as400 o s390 nn funziona. ;)
Originariamente inviato da petitof
però mi va in errore...."CHIAVE" cosa sarebbe?
le colnne chiave della tabella che stai selezionando.
non ricordo bene la sintassi ma ho visto che hai trovato da solo ;)
Originariamente inviato da kingv
leggi bene le mie risposte, ho detto che su as400 o s390 nn funziona. ;)
le avevo lette, difatti ho fatto il test x conferma! sennò le faccette che le mettevo a fare? avevo giusto qui un as400 a fare una cippa... :sofico: :sofico: :sofico: :D
Originariamente inviato da mailand
avevo giusto qui un as400 a fare una cippa... :D
:nonsifa:
se non avete niente da fare (tu e lui) potresti sempre metterti a lavorare al porting per as400 di doom3 :O :muro:
si in emulazione terminale 5250... :sofico:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.