最近开始接触一些BW历程的内容,就看到有有一部分SELECT关键词不同,但是功能类似,就想着整理一下。

SELECT 语句

SELECT 语句用于从一个数据源中查询符合条件的所有记录。查询结果会存储在一个内表中,可以通过 LOOP 语句遍历内表中的每一条记录。SELECT 语句可以使用 WHERE 子句指定查询条件,也可以使用 GROUP BY 子句和 HAVING 子句进行分组和聚合操作。SELECT 语句的基本语法如下:

1
2
3
4
5
6
SELECT <fields>
INTO <internal table>
FROM <data source>
[WHERE <condition>]
[GROUP BY <fields>]
[HAVING <condition>].

其中, 指定要查询的字段列表,可以使用通配符 * 查询所有字段,也可以指定具体的字段名; 指定查询结果存储的内表; 指定要查询的数据源,可以是一个表、一个视图或者一个函数; 指定查询条件,可以使用等于、不等于、大于、小于等比较运算符,也可以使用逻辑运算符 AND 和 OR 连接多个条件; 可以使用 GROUP BY 和 HAVING 子句进行分组和聚合操作。

SELECT SINGLE 语句

SELECT SINGLE 语句用于从一个数据源中查询符合条件的一条记录。查询结果可以存储在一个单一变量或者一个结构体中。SELECT SINGLE 语句只会返回一条记录,如果查询结果为空,则会抛出一个异常。SELECT SINGLE 语句的基本语法如下:

1
2
3
4
SELECT SINGLE <fields>
INTO <variables>
FROM <data source>
WHERE <condition>.

其中, 指定要查询的字段列表,可以使用具体的字段名; 指定查询结果存储的单一变量或者结构体; 指定要查询的数据源,可以是一个表、一个视图或者一个函数; 指定查询条件,可以使用等于、不等于、大于、小于等比较运算符,也可以使用逻辑运算符 AND 和 OR 连接多个条件。

SELECT DISTINCT 语句

SELECT DISTINCT 语句用于从一个数据源中查询符合条件的所有不同记录。查询结果会存储在一个内表中,可以通过 LOOP 语句遍历内表中的每一条记录。SELECT DISTINCT 语句会去重,只返回不同的记录。SELECT DISTINCT 语句可以使用 WHERE 子句指定查询条件,也可以使用 GROUP BY 子句和 HAVING 子句进行分组和聚合操作。SELECT DISTINCT 语句的基本语法如下:

1
2
3
4
5
6
SELECT DISTINCT <fields>
INTO <internal table>
FROM <data source>
[WHERE <condition>]
[GROUP BY <fields>]
[HAVING <condition>].

其中, 指定要查询的字段列表,可以使用通配符 * 查询所有字段,也可以指定具体的字段名; 指定查询结果存储的内表; 指定要查询的数据源,可以是一个表、一个视图或者一个函数; 指定查询条件,可以使用等于、不等于、大于、小于等比较运算符,也可以使用逻辑运算符 AND 和 OR 连接多个条件; 可以使用 GROUP BY 和 HAVING 子句进行分组和聚合操作。

总结

总的来说,SELECT 用于查询多条记录,SELECT SINGLE 用于查询一条记录,SELECT DISTINCT 用于查询不同的记录。在实际开发中,应根据具体的需求选择合适的语句。如果只需要查询一条记录,建议使用 SELECT SINGLE,可以提高查询效率和代码可读性。如果需要查询多条记录,则需要使用 SELECT。如果需要查询不同的记录,则需要使用 SELECT DISTINCT。