Tengo un problema muy simple que no puedo resolver. Necesito hacer algo como esto:
select distinct * from (1, 1, 1, 2, 5, 1, 6).
¿Alguien puede ayudar?
Editar
Los datos vienen como un archivo de texto de uno de nuestros clientes. Está totalmente sin formato (es una sola línea de texto muy larga), pero puede ser posible hacerlo en Excel. Pero no es práctico para mí, porque necesitaré usar estos valores en mi consulta sql. No es conveniente hacerlo cada vez que necesito ejecutar una consulta.
sql-server
select-query
Eedoh
fuente
fuente
$d = (1, 1, 1, 2, 5, 1, 6) | sort -Unique
para obtener los valores distintos en una matriz$d
. Fácil de extender a una herramienta de archivo a archivo.Respuestas:
La manera más simple de obtener los valores distintos de una larga lista de texto delimitado por comas sería utilizar un reemplazo con UNION para obtener los valores distintos.
Aplicado a su larga línea de texto delimitado por comas
UNION SELECT
SELECT
delante de la declaraciónAhora debería tener una consulta de trabajo
fuente
Disponible solo en SQL Server 2008 y versiones posteriores es el constructor de filas de esta forma:
podría usar
Muchos escribieron sobre, entre ellos:
fuente
X
es alias para el nombre de la tabla ya
es alias para el nombre de la columna;).pgsql
y ahora golpeando la cabeza para hacer que FROM acepte valores menores como registros de filasqlserver
, y aquí está. Feliz de saber.En general :
En tu caso :
fuente
¿Has intentado usar la siguiente sintaxis?
fuente
SELECT DISTINCT table_name.column_name FROM (VALUES (1), (2), (3)) AS table_name(column_name)
Si desea seleccionar solo ciertos valores de una sola tabla, puede probar esto
p.ej:
Si desea seleccionar entre varias tablas, debe elegir
UNION
.Si solo desea seleccionar los valores 1, 1, 1, 2, 5, 1, 6, entonces debe hacer esto
fuente
PostgreSQL le ofrece 2 formas de hacer esto:
o
usando el enfoque de matriz también puede hacer algo como esto:
fuente
:)
Esto funciona en SQL Server 2005 y si hay un número máximo:
fuente
Sé que este es un hilo bastante antiguo, pero estaba buscando algo similar y se me ocurrió esto.
Dado que tenía una cadena separada por comas, podría usar
string_split
Esto debería volver
La división de cadena toma dos parámetros, la entrada de cadena y el carácter separador.
puede agregar una instrucción where opcional usando
value
como nombre de columnaproduce
fuente
Si necesita una matriz, separe las columnas de la matriz con una coma:
fuente
Otra forma que puede usar es una consulta como esta:
fuente
fuente
Una técnica que me ha funcionado es consultar una tabla que sabe que tiene una gran cantidad de registros, incluido solo el campo Row_Number en su resultado
devolverá un conjunto de resultados de 10000 registros de 1 a 10000, use esto dentro de otra consulta para obtener los resultados deseados
fuente
Usa la
In
función SQLAlgo como esto:
Funciona un regalo en ArcGIS
fuente