SELECT * FROM ( SELECT TMP_PAGE.*, ROWNUM ROW_ID FROM ( SELECT tt.ID, tt.VIN, tt.AON, tt.MSC, tt.VEH_CLSCRQ, tt.COLOR_CODE, tt.VEH_ZCHGZBH, tt.VEH_WZHGZBH, tt.VEH_FZRQ, tt.FRIST_PRINT_DATE, tt.VEH_CLZZQYMC, tt.VEH_CLPPMC, tt.IFLOCK, tt.UP_SYNCSTATE, tt.VEH_CLXH, tt.IS_SAMPLE, ta.XNYC AS XNYC, SUBSTR( VIN, 8, 1 ) AS DLLX, T_DLLX.NAME AS DLLXNAME FROM T_VEHCERT_PRINT tt LEFT JOIN T_ALL_PARAM ta ON tt.MSC = ta.MSC LEFT JOIN T_DLLX ON SUBSTR( VIN, 8, 1 ) = T_DLLX.CODE WHERE XNYC = '否' AND IFLOCK = '0' AND UP_SYNCSTATE ='1' ORDER BY frist_print_date DESC ) TMP_PAGE WHERE ROWNUM <= '10' ) WHERE ROW_ID > '0'这段sql查询半天都查不出结果
时间: 2024-04-26 22:21:25 浏览: 24
这段 SQL 查询语句的目的是从 T_VEHCERT_PRINT 表中选择一些列,并将它们与其他表连接,然后按照 frist_print_date 字段降序排序。然后,它将结果限制为前 10 行,并为每一行分配一个 ROW_ID。最后,它选择所有 ROW_ID 大于 0 的行。
如果这段 SQL 查询半天都查不出结果,可能是因为没有符合条件的数据存在。您可以检查 WHERE 子句中的条件是否正确,并检查表中是否存在与这些条件匹配的数据。此外,您还可以查看数据库日志,以查找是否存在任何错误或异常。
相关问题
select * from 表 where id >rownum 是什么意思
这个 SQL 查询语句是有语法错误的,因为 `rownum` 是 Oracle 数据库中一个伪列(pseudo column),不能在 WHERE 子句中使用。`rownum` 是指 Oracle 返回的结果集中每一行的行号,不是表中的实际行号。
如果你想查询表中 `id` 大于某个值的所有行,可以使用以下语法:
```sql
SELECT * FROM 表 WHERE id > 值;
```
其中 `表` 是表名,`id` 是表中的列名,`值` 是一个具体的数值。例如:
```sql
SELECT * FROM employees WHERE id > 100;
```
这个查询会返回 `employees` 表中 `id` 大于 100 的所有行。
select * from 表 where id >rownum 改为pgsql写法
在 PostgreSQL 中,可以使用以下查询语句来实现类似 Oracle 数据库中的查询:
```
SELECT * FROM 表 WHERE id > (SELECT COUNT(*) FROM 表 WHERE id < 当前行id);
```
其中,当前行id可以通过子查询获取,例如:
```
SELECT * FROM 表 WHERE id > (SELECT COUNT(*) FROM 表 t2 WHERE t2.id < t1.id);
```
其中,t1 是外部查询中的表别名,t2 是子查询中的表别名。