如何选择多个硬编码的SQL行?

14 浏览
0 Comments

如何选择多个硬编码的SQL行?

如果执行这个查询:\n

SELECT 'test-a1' AS name1, 'test-a2' AS name2

\n结果将是一行两列的选择,值为:\n

test-a1, test-a2

\n我该如何修改上述查询,使其选择多行,例如:\n

test-a1, test-a2
test-b1, test-b2
test-c1, test-c2

\n我知道可以使用UNION来实现,但我觉得可能存在更简单的方法。\nPS. 对不起,这是一个非常基础的问题,很难在谷歌上搜索到相关信息。

0
0 Comments

问题的出现原因:用户想要选择多个硬编码SQL行,但不确定应该如何实现。

解决方法:使用UNION ALL操作符。它比UNION操作符更快,并且可以得到互斥的行。

以下是帮助我解决问题的Oracle答案:

stackoverflow.com/questions/10353969/...

与UNION操作符相反,UNION ALL操作符会生成重复的行,而UNION操作符会生成互斥的行。

0
0 Comments

在SQL中,有时候需要选择多个硬编码的行。下面的内容提供了一种解决方法:

SELECT 'test-a1' AS name1, 'test-a2' AS name2 
UNION ALL 
SELECT 'test-b1', 'test-b2'
UNION ALL 
SELECT 'test-c1', 'test-c2'

上述代码使用了UNION ALL关键字,它可以将多个SELECT语句的结果合并为一个结果集。每个SELECT语句表示一个硬编码的行。在这个例子中,我们选择了三个硬编码的行,每个行包含两列。

通过使用AS关键字,我们给每个列指定了一个别名。在这个例子中,第一列的别名是name1,第二列的别名是name2。

使用UNION ALL关键字时,请确保每个SELECT语句返回相同数量和类型的列。否则,查询将无法执行成功。

通过这种方式,我们可以选择多个硬编码的行。这对于某些特定的需求非常有用,例如需要在查询结果中添加一些固定的行。

希望这个解决方法对你有帮助!

0
0 Comments

如何选择多个硬编码的SQL行?

在选择多个硬编码的SQL行时,可以使用以下方法:

select * from 
(values ('test-a1', 'test-a2'), ('test-b1', 'test-b2'), ('test-c1', 'test-c2')) x(col1, col2)

但是,为什么UNION ALL的答案比这个更受欢迎呢?这段代码在MuSQL 5.6.25中无法运行,这是5.7的新特性吗?我在MS SQL Server中测试了这个例子,运行得很好,但在Oracle中却不行。在10.6.4-MariaDB-1:10.6.4+maria~focal-log中返回语法错误。但在Postgres中可以工作!Postgres文档将其写为`SELECT * FROM (VALUES (...), (...), ....) AS t(col_name1, ...)`。

此方法在Excel中非常容易使用,可以生成每行一个`(A2, B2)`的插入行。

0