Eu tenho um problema muito simples que não consigo resolver. Eu preciso fazer algo assim:
select distinct * from (1, 1, 1, 2, 5, 1, 6).
Alguém pode ajudar ??
Editar
Os dados são fornecidos como um arquivo de texto de um de nossos clientes. É totalmente não formatado (é uma única linha de texto muito longa), mas pode ser possível fazê-lo no Excel. Mas não é prático para mim, porque precisarei usar esses valores na minha consulta sql. Não é conveniente fazer isso sempre que preciso executar uma consulta.
sql-server
select-query
Eedoh
fonte
fonte
$d = (1, 1, 1, 2, 5, 1, 6) | sort -Unique
para obter os valores distintos em uma matriz$d
. Fácil de estender a uma ferramenta de arquivo para arquivo.Respostas:
A maneira mais simples de obter os valores distintos de uma longa lista de texto delimitado por vírgula seria usar uma substituição de localização por UNION para obter os valores distintos.
Aplicado à sua longa linha de texto delimitado por vírgula
UNION SELECT
SELECT
na frente da declaraçãoAgora você deve ter uma consulta de trabalho
fonte
Disponível apenas no SQL Server 2008 e superior, é o construtor de linhas desta forma:
Você pode usar
Muitos escreveram sobre, entre eles:
fonte
X
é o alias para o nome da tabela ea
é o alias para o nome da coluna;).pgsql
e agora estou acenando para fazer FROM aceitar valores menores como registros de linhasqlserver
, e aqui está. Feliz em saber.Em geral :
No seu caso :
fonte
Você já tentou usar a seguinte sintaxe?
fonte
SELECT DISTINCT table_name.column_name FROM (VALUES (1), (2), (3)) AS table_name(column_name)
Se você deseja selecionar apenas determinados valores de uma única tabela, pode tentar isso
por exemplo:
Se você deseja selecionar entre várias tabelas, deve escolher
UNION
.Se você quiser apenas selecionar os valores 1, 1, 1, 2, 5, 1, 6, faça isso
fonte
O PostgreSQL fornece duas maneiras de fazer isso:
ou
usando a abordagem de array, você também pode fazer algo assim:
fonte
:)
Isso funciona no SQL Server 2005 e se houver um número máximo:
fonte
Eu sei que este é um tópico bastante antigo, mas eu estava procurando por algo semelhante e surgiu com isso.
Como você tinha uma cadeia de caracteres separada por vírgula, poderia usar
string_split
Isso deve retornar
A divisão de cadeia utiliza dois parâmetros, a entrada de cadeia e o caractere separador.
você pode adicionar uma instrução where opcional usando
value
como o nome da colunaproduz
fonte
Se você precisar de uma matriz, separe as colunas da matriz com uma vírgula:
fonte
Outra maneira que você pode usar é uma consulta como esta:
fonte
fonte
Uma técnica que funcionou para mim é consultar uma tabela que você sabe que possui uma grande quantidade de registros, incluindo apenas o campo Row_Number no seu resultado
retornará um conjunto de resultados de 10000 registros de 1 a 10000, use-o em outra consulta para fornecer os resultados desejados
fonte
Use a
In
função SQLAlgo assim:
Trabalha um tratamento no ArcGIS
fonte