这是一个非常基本的问题,但我还没有在网上找到任何东西。
假设我有一个包含数百个长选择语句的大型SQL文件,如下所示:
SELECT 'col1', 'col2', 'col3', 'col4', 'col5', 'col6', 'col7', NULL UNION
SELECT 'col1', 'col2', 'col3', 'col4', 'col5', 'col6', 'col7', NULL
这里的UNION应该在最后还是在前面,如下:
SELECT 'col1', 'col2', 'col3', 'col4', 'col5', 'col6', 'col7', NULL
UNION SELECT 'col1', 'col2', 'col3', 'col4', 'col5', 'col6', 'col7', NULL
答案 0 :(得分:1)
这是一个个人风格的问题。有人写道:
SELECT
id,
name,
dob
FROM PERSON;
有些人 - 像我一样 - 写道:
SELECT
id
, name
, dob
FROM PERSON;
我这样做的一个推理(这是可辩论的),是你可以注释掉除了第一个之外的所有列,只需要两个破折号,而不必用逗号来摆弄。但可能只是因为我喜欢它。
出于同样的原因,我的朋友毛罗写道:
select 42,'Arthur Dent',date '1957-04-22' union all
select 43,'Ford Prefect',date '1900-08-01' union all
select 44,'Tricia McMillan',date '1959-03-07'
;
..我写道:
SELECT 42,'Arthur Dent',DATE '1957-04-22'
UNION ALL SELECT 43,'Ford Prefect',DATE '1900-08-01'
UNION ALL SELECT 44,'Tricia McMillan',DATE '1959-03-07'
;
这里没有错误或正确。我建议你保持一致 - 与你自己,以及与你一起工作的所有人。
干杯 - 马可
答案 1 :(得分:0)
SELECT 'col1', 'col2', 'col3', 'col4', 'col5', 'col6', 'col7', NULL UNION
SELECT 'col1', 'col2', 'col3', 'col4', 'col5', 'col6', 'col7', NULL
或
SELECT 'col1', 'col2', 'col3', 'col4', 'col5', 'col6', 'col7', NULL
UNION SELECT 'col1', 'col2', 'col3', 'col4', 'col5', 'col6', 'col7', NULL
没关系。
将根据第一个选择命名列。
UNION
将删除重复项,UNION ALL
赢了