2009-04-10 11 views
48

È possibile estendere i risultati della query con valori letterali come questo?Aggiungi riga al risultato della query utilizzando select

select name from users 
union 
select name from ('JASON'); 

o

select age, name from users 
union 
select age, name from (25,'Betty'); 

quindi restituisce tutti i nomi nella tabella plus 'JASON', o (25, 'Betty').

risposta

10

è possibile estendere i risultati della query con valori letterali come questo?

Sì.

Select Name 
From Customers 
UNION ALL 
Select 'Jason' 
  • Usa UNION per aggiungere Jason, se non è già nel set di risultati.
  • Utilizzare UNION ALL per aggiungere Jason anche se è già nel set di risultati.
+0

sto usando sql server 2005 e l'esecuzione di una semplice unione come il mio primo esempio, ma io ottieni "Sintassi errata". È esplicitamente come il mio esempio? –

+0

Spiacente, ho interpretato erroneamente il tuo esempio. vedi modifica. –

+0

Come faresti sempre a restituire "Jason" come primo elemento nell'elenco dei rimpatri? –

64

si utilizza in questo modo:

SELECT age, name 
FROM users 
UNION 
SELECT 25 AS age, 'Betty' AS name 

Usa UNION ALL per consentire duplicati: se c'è una Betty 25-anni tra gli utenti, la seconda query non selezionerà di nuovo con la mera UNION.

17

In SQL Server, si potrebbe dire:

Select name from users 
UNION [ALL] 
SELECT 'JASON' 

In Oracle, si direbbe

Select name from user 
UNION [ALL] 
Select 'JASON' from DUAL 
+0

Ha specificato il server sql: "da doppio" è solo Oracle –

+8

+1 per considerarci oraclisti aziendali scarsi – Martlark

+0

non dovrebbero essere omesse le parentesi intorno ALL per SQL Server? – Yeonho