with tmp(a, b) as ( values (1, 1), (1, 0), (1, cast(null as int)) , (0, 1), (0, 0), (0, cast(null as int)) , (cast(null as int), 1), (cast(null as int), 0), (cast(null as int), cast(null as int))) select * from tmp where a = 1 AND b = 1 order by 1, 2;mysql支持吗
时间: 2023-08-24 22:05:06 浏览: 36
这是一个使用 WITH 子句和 VALUES 子句生成一个临时表并从中查询数据的 SQL 语句。MySQL 并不支持 WITH 子句,但可以通过创建临时表或者使用子查询来实现相同的功能。以下是一个使用子查询的示例:
```
SELECT *
FROM (SELECT 1 AS a, 1 AS b UNION ALL
SELECT 1, 0 UNION ALL
SELECT 1, NULL UNION ALL
SELECT 0, 1 UNION ALL
SELECT 0, 0 UNION ALL
SELECT 0, NULL UNION ALL
SELECT NULL, 1 UNION ALL
SELECT NULL, 0 UNION ALL
SELECT NULL, NULL) AS tmp
WHERE a = 1 AND b = 1
ORDER BY 1, 2;
```
注意,MySQL 中的子查询必须包含在括号内,并且必须为其指定一个别名。
相关问题
hive中values__tmp__table__1
在Hive中,`values__tmp__table__1`通常表示一个临时表,用于存储VALUES子句中的临时数据。这种表通常用于在查询中使用硬编码的常量值,而不是从其他表中检索数据。临时表的命名通常是自动生成的,以确保唯一性。在Hive中,这些临时表的命名约定通常是以`values__tmp__table__`开头,后面跟着一个数字或其他唯一标识符。
insert into table num values (select count(1) from tmp)
这是一个 SQL 语句,用于将表 tmp 中的记录行数插入到表 num 中。具体来说,它会执行一个子查询,计算出表 tmp 中的记录数(即 tmp 表的行数),然后将这个记录数插入到 num 表中。请注意,这个语句假设表 num 已经存在,并且有一个名为 count 的列,用于存储记录数。如果表 num 不存在,或者没有这个列,那么这个语句会执行失败。