|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: May 2006
Messaggi: 883
|
[SQL Server] Aiuto linguaggio SQL
Ho un piccolo problemino con una tabella.
Faccio un esempio banalissimo. Ho una tabella con 2 campi ID, Numeri ID Numeri 1 2 2 4 3 7 4 11 5 13 6 1000 E' possibile creare una Vista o query che mi restituisca in uscita una colonna che abbia tutti i numeri da 1 a 1000 ad esclusione dei numeri 2, 4, 7, 11, 13, 1000 ? Ed un'atra vista che mi dia il primo numero libero? POSSIBILE? In casi estremi mi potrebbe andare bene anche una Stored Procedure solo che non le conosco se non minimamente GRAZIE 1000 P.S. mi serve per una pagina ASP, potrei risolvere applicando delle piccole tecniche di programmazione solo che per elaborare il tutto impiega un pò di tempo e quindi non va bene
__________________
Un giorno le macchine riusciranno a risolvere tutti i problemi, ma mai nessuna di esse potrà porne uno. (Albert Einstein) Il calcolatore è straordinariamente veloce, accurato e stupido. L'uomo è incredibilmente lento, impreciso e creativo. L'insieme dei due costituisce una forza incalcolabile. (Albert Einstein) |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: May 2006
Messaggi: 883
|
__________________
Un giorno le macchine riusciranno a risolvere tutti i problemi, ma mai nessuna di esse potrà porne uno. (Albert Einstein) Il calcolatore è straordinariamente veloce, accurato e stupido. L'uomo è incredibilmente lento, impreciso e creativo. L'insieme dei due costituisce una forza incalcolabile. (Albert Einstein) |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2008
Messaggi: 411
|
Giuro che non ho capito benissimo.
Potresti contestualizzare meglio la cosa nell'ambito del tuo progetto?
__________________
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: May 2006
Messaggi: 883
|
Quote:
Io vorrei una Vista che mi restituisca: 1,3,5,6,8,9,10,12,14, ecc.... Sono stato un pochino chiaro? Grazie 1000
__________________
Un giorno le macchine riusciranno a risolvere tutti i problemi, ma mai nessuna di esse potrà porne uno. (Albert Einstein) Il calcolatore è straordinariamente veloce, accurato e stupido. L'uomo è incredibilmente lento, impreciso e creativo. L'insieme dei due costituisce una forza incalcolabile. (Albert Einstein) |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
In oracle io farei cosi... ma sql server purtroppo non lo conosco, dovresti trovare un sostituto per il costrutto 'connect by' che non è sql standard.
Cmq, per quello che può servire... Codice:
select level n
from dual
where level not in( select numeri
from t -- <-- questa è la tua tabella!
where numeri is not null )
connect by level <= 1000
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: May 2006
Messaggi: 883
|
Grazie per la risposta ma quello che hai postato è tutto linguaggio SQL?
A parte 'connect by', perchè ci capisco poco
__________________
Un giorno le macchine riusciranno a risolvere tutti i problemi, ma mai nessuna di esse potrà porne uno. (Albert Einstein) Il calcolatore è straordinariamente veloce, accurato e stupido. L'uomo è incredibilmente lento, impreciso e creativo. L'insieme dei due costituisce una forza incalcolabile. (Albert Einstein) |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quote:
Sotto SqlServer puoi fare cosi'. dichiari una table function Codice:
CREATE FUNCTION [dbo].[ufn_GenerateIntegers] ( @MaxValue INT )
RETURNS @Integers TABLE ( [IntValue] INT )
AS
BEGIN
DECLARE @Index INT
SET @Index = 1
WHILE @Index <= @MaxValue
BEGIN
INSERT INTO @Integers ( [IntValue] ) VALUES ( @Index )
SET @Index = @Index + 1
END
RETURN
END
Codice:
SELECT IntValue FROM ufn_GenerateIntegers(1000) as ut WHERE ut.IntValue NOT IN (SELECT valore FROM MiaTabella) Codice:
SELECT Min(IntValue) FROM ufn_GenerateIntegers(1000) as ut WHERE ut.IntValue NOT IN (SELECT valore FROM MiaTabella)
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: May 2006
Messaggi: 883
|
GRAZIE 1000
Mi sei stato utile
__________________
Un giorno le macchine riusciranno a risolvere tutti i problemi, ma mai nessuna di esse potrà porne uno. (Albert Einstein) Il calcolatore è straordinariamente veloce, accurato e stupido. L'uomo è incredibilmente lento, impreciso e creativo. L'insieme dei due costituisce una forza incalcolabile. (Albert Einstein) |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:18.




















