2009-04-10 6 views
48

¿Es posible extender los resultados de la consulta con literales como este?Agregar fila al resultado de la consulta usando seleccionar

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

o

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

por lo que devuelve todos los nombres en la tabla de más 'Jason', o (25, 'Betty').

Respuesta

10

¿es posible ampliar los resultados de la consulta con literales como este?

Sí.

Select Name 
From Customers 
UNION ALL 
Select 'Jason' 
  • Uso UNION para añadir Jason si no está ya en el conjunto de resultados.
  • Usa UNION ALL para agregar a Jason si ya está en el conjunto de resultados.
+0

estoy usando SQL Server 2005 y en funcionamiento una unión sencilla como mi primer ejemplo, pero obtener "Sintaxis incorrecta". ¿Es explícitamente como mi ejemplo? –

+0

Lo sentimos, leí mal su ejemplo. ver editar. –

+0

¿Cómo devolvería siempre a 'Jason' como el primer artículo en la lista de Union de regreso? –

64

que lo utilice como esto:

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

Uso UNION ALL para permitir duplicados: si hay una Betty 25 años de edad entre sus usuarios, la segunda consulta no seleccionará de nuevo con la mera UNION.

17

En SQL Server, se podría decir:

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

En Oracle, que dirían

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

Especificó el servidor sql: "de dual" es oráculo solamente –

+8

+1 por considerarnos oracistas corporativas deficientes – Martlark

+0

¿no deberían omitirse los corchetes de ALL para SQL Server? – Yeonho

Cuestiones relacionadas