Selecionar constantes sem se referir a uma tabela é perfeitamente legal em uma instrução SQL:
SELECT 1, 2, 3
O conjunto de resultados que o último retorna é uma única linha que contém os valores. Eu queria saber se existe uma maneira de selecionar várias linhas ao mesmo tempo usando uma expressão constante, algo como:
SELECT ((1, 2, 3), (4, 5, 6), (7, 8, 9))
Eu gostaria de algo como o acima, que funciona e retorna um conjunto de resultados com 3 linhas e 3 colunas.
Respostas:
fonte
AS
para dar aliases no primeiroSELECT
Classic Report
tabelas com conteúdo estático, se concluídas com valoresFROM dual
depois de cada umSELECT
e antesUNION ALL
se presentes.Em
PostgreSQL
, você pode fazer:Em outros sistemas, basta usar
UNION ALL
:Em
Oracle
,SQL Server
ePostgreSQL
, você também pode gerar conjuntos de registros com número arbitrário de linhas (disponibilizável com uma variável externa):em
Oracle
,em
SQL Server
,no
PostgreSQL
.fonte
SELECT 1
no Oracle (SELECT 1 FROM Dual
funcionou).O seguinte
VALUES
comando bare funciona para mim no PostgreSQL:fonte
Experimente a cláusula connect by no oracle, algo como isto
Para obter mais informações sobre a cláusula connect by, siga este link: URL removido porque o site oraclebin agora é malicioso.
fonte
Para Microsoft SQL Server ou PostgreSQL, convém tentar esta sintaxe
SELECT constants FROM (VALUES ('[email protected]'), ('[email protected]'), ('[email protected]')) AS MyTable(constants)
Você também pode visualizar um SQL Fiddle aqui: http://www.sqlfiddle.com/#!17/9eecb/34703/0
fonte
Oráculo. Graças a este post PL / SQL - Use a variável "List" na cláusula Where In
Eu montei minha instrução de exemplo para inserir valores manualmente com facilidade (sendo reutilizados no teste de um aplicativo pelos testadores):
fonte
fonte
Aqui está como eu preencho dados estáticos no Oracle 10+ usando um truque XML puro.
A mesclagem insere apenas as linhas que estão faltando na tabela original, o que é conveniente se você deseja executar novamente o script de inserção.
fonte
Uma opção para o DB2:
fonte
No Oracle
fonte
Aqui está como fazer isso usando os recursos XML do DB2
fonte
Desta forma, pode ajudá-lo
Any_Table_In_Your_DataBase:
qualquer tabela que contenha mais de 3 registros ou use qualquer tabela do sistema. Aqui não temos preocupação com os dados dessa tabela.Você pode trazer variações no conjunto de resultados concatenando uma coluna com as colunas Primeira, Segunda e Terceira da
Any_Table_In_Your_DataBase
tabela.fonte
No MySQL, você pode fazer:
values (1,2), (3, 4);
Com o MySQL 8, também é possível fornecer os nomes das colunas:
fonte
algo parecido
fonte