multiple inner columns cheatsheet sql sql-server

sql - columns - inner join r dplyr



Diferencia entre Select Unique y Select Distinct (5)

Solo en Oracle =>

SELECT DISTINCT y SELECT UNIQUE comportan de la misma manera. Si bien DISTINCT es el estándar ANSI SQL, UNIQUE es una declaración específica de Oracle.

En otras bases de datos (como sql-server en su caso) =>

SELECT UNIQUE es una sintaxis no válida. UNIQUE es una palabra clave para agregar restricciones únicas en la columna.

SELECCIONE DISTINTO

Pensé que estos eran sinónimos, pero escribí lo siguiente en Microsoft SQL:

Select Unique col from (select col from table1 union select col from table2) alias

Y falló Cambiando a

Select Distinct col from (select col from table1 union select col from table2) alias

arreglado. ¿Alguien puede explicar?


  1. Único fue la sintaxis antigua, mientras que Distinct es la nueva sintaxis, que ahora es el sql estándar.
  2. Unique crea una restricción de que todos los valores que se insertan deben ser diferentes de los demás. Se puede atestiguar un error si uno intenta ingresar un valor duplicado. Resultados distintos en la eliminación de las filas duplicadas al recuperar datos.
  3. Ejemplo: SELECCIONAR nombres DISTINCT FROM student;

    CREAR TABLA Personas (Id varchar NOT NULL UNIQUE , Name varchar (20));


Único es una palabra clave utilizada en la directiva Create Table () para indicar que un campo contendrá datos únicos, generalmente utilizados para claves naturales, claves externas, etc.

Por ejemplo:

Create Table Employee( Emp_PKey Int Identity(1, 1) Constraint PK_Employee_Emp_PKey Primary Key, Emp_SSN Numeric Not Null Unique, Emp_FName varchar(16), Emp_LName varchar(16) )

es decir, el número de seguridad social de alguien probablemente sea un campo único en su tabla, pero no necesariamente la clave principal.

Distinct se usa en la instrucción Select para notificar a la consulta que solo desea que se devuelvan los elementos únicos cuando un campo contiene datos que pueden no ser únicos.

Select Distinct Emp_LName From Employee

Puede tener muchos empleados con el mismo apellido, pero solo quiere cada apellido diferente.

Obviamente, si el campo que está consultando contiene datos únicos, la palabra clave Distinct se vuelve superflua.


select unique no es una sintaxis válida para lo que estás tratando de hacer

desea usar ya sea seleccionar distintivo o seleccionar distinctrow

Y, de hecho, ni siquiera necesitas diferenciar / distinguir en lo que estás tratando de hacer. Puede eliminar duplicados eligiendo los parámetros de declaración de unión apropiados.

la consulta a continuación solo proporcionará valores distintos

select col from table1 union select col from table2

si querías duplicados tendrías que hacer

select col from table1 union all select col from table2


SELECT UNIQUE es la sintaxis antigua compatible con el sabor de SQL de Oracle. Es sinónimo de SELECT DISTINCT .

Use SELECT DISTINCT porque es SQL estándar, y SELECT UNIQUE no es estándar, y en las marcas de bases de datos que no sean Oracle, SELECT UNIQUE puede no ser reconocido en absoluto.