3.2.3.9. SQLite

3.2.3.9.1. 虚拟表查询

虚拟表 DUAL 用于在 Oracle 数据库 中执行简单查询语法如下:

select xxx from dual
-- 转换前Oracle SQL:
SELECT 5+ 3 FROM DUAL;
SELECT '这是一个测试字符串' FROM DUAL;
SELECT TO_CHAR(123)FROM DUAL;

-- 转换后SQLite:
SELECT 5+3 FROM (SELECT 1) AS DUAL;
SELECT '这是一个测试字符串' FROM (SELECT 1) AS DUAL;
SELECT TO_CHAR(123) FROM (SELECT 1) AS DUAL;

警告

SQL语句: select * from dual 转换后为 select *,sqlite数据库执行会出错。

3.2.3.9.2. select … into …

select ... into ... 语句的作用是将查询结果存储到一个变量、文件或新表中,是一种非标准的SQL,可在PL/SQL中使用。

语法

SELECT select_expr_list INTO variable FROM from_list

示例

-- 转换前Oracle SQL:
select col1,col2 into @a1,@a2 from test_unisql_into_table;
select col1,col2 into b1,b2 from test_unisql_into_table;

-- 转换后SQLite:
SELECT `col1` AS `a1`,`col2` AS `a2` FROM `test_unisql_into_table`
SELECT `col1` AS `b1`,`col2` AS `b2` FROM `test_unisql_into_table`

警告

不支持 select * into ... 这种表达,需要确保 INTO 关键字前后的字段数量一致 。