>Aggiungere però una colonna ad entrambe le tabelle solo per permettere
>ad una funzione del Database di sapere come ordinare i Dati,
>non mi sembra "bello" (intendo dire, che non mi sembra elegante
>come soluzione...non che sia sbagliato...ovviamente).
Per quello avrei pensato ad una soluzione JOIN + COALESCE.
Ma anche l'approccio "IF", essendo solo due le tabelle.. non pesa tanto ed è leggibile.
Alla fine basta mettere un valore di una select in una var e poi il valore dell'altra query in un'altra var.
poi COALESCE ed è fatta. Guarda questo semplicissimo esempio:
USE tempdb;
GO
CREATE TABLE #tempIPs1 (ip varchar(15), id int)
GO
CREATE TABLE #tempIPs2 (ip varchar(15), id int)
GO
INSERT INTO #tempIPs1 ( ip, id )
VALUES ( '10.10.10.10', 1 )
INSERT INTO #tempIPs1 ( ip, id )
VALUES ( '10.10.10.20', 2 )
INSERT INTO #tempIPs1 ( ip, id )
VALUES ( '10.10.10.30', 3 )
GO
INSERT INTO #tempIPs2 ( ip, id )
VALUES ( '10.10.10.10', 10 )
INSERT INTO #tempIPs2 ( ip, id )
VALUES ( '50.50.50.50', 20 )
INSERT INTO #tempIPs2 ( ip, id )
VALUES ( '50.50.50.70', 30 )
GO
DECLARE @val1 int = NULL
DECLARE @val2 int = NULL
SELECT @val1 = id FROM #tempIPs1 WHERE ip = '50.50.50.50'
SELECT @val2 = id FROM #tempIPs2 WHERE ip = '50.50.50.50'
SELECT
Valore1 = @val1
, Valore2 = @val2
-- prio su val1 ma torna val2, la coalesce torna il primo valore non null fra quelli passati
SELECT COALESCE(@val1, @val2)
DROP TABLE #tempIPs1
DROP TABLE #tempIPs2
GO
>Ciao
Ciao
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi