具有变量BETWEEN的DB2 SQL分页

多米尼克·德沙特(Dominique deschatre)

因此,我必须使用DB2对站点数据库进行分页,每页显示10个结果。但是,当我使用时FETCH FIRST 10 ROWS ONLY,所有页面都显示相同的10个第一结果。我搜索并确定必须使用BETWEEN 0 AND 9范围变量,但是无论如何我都无法正确理解SQL代码。我总是收到错误消息odbc_fetch_row(): supplied argument is not a valid ODBC result resource

我为偏移量创建了变量:

//offset for the query
$limit = 10;
$offset = ($currentpage - 1)  * $limit;
$start = $offset + 1;
$end = min(($offset + $limit), $total);
$offsetend = $end - 1;

并从数据库获取了信息:

$busca="";
    if(isset($_GET['palavra']))
    {
        $busca=($_GET['palavra']);
    }
    $SQL1 = "SELECT PALAVRA.CODPAL, PALAVRA.NMPAL, PALAVRA.NMLIBTRANS 
    FROM (SELECT ROW_NUMBER() OVER (ORDER BY PALAVRA.NMPAL ASC) AS ROWNUM
    FROM MAXADM.PALAVRA WHERE PALAVRA.NMPAL LIKE '$busca%') AS P 
    WHERE P.ROWNUM BETWEEN $offset AND $offsetend";

    $rs1=getInfo($SQL1);
    while(odbc_fetch_row($rs1))
    {
    $cod_palavra = odbc_result($rs1,"CODPAL");
    $palavra = odbc_result($rs1,"NMPAL");
    $librastrans = odbc_result($rs1,"NMLIBTRANS");
    }

我究竟做错了什么?太感谢了!

Mustaccio

就目前而言,具有相关名称的子选择P仅包含一列ROWNUM

SELECT PALAVRA.CODPAL, PALAVRA.NMPAL, PALAVRA.NMLIBTRANS 
FROM (
  SELECT ROW_NUMBER() OVER (ORDER BY PALAVRA.NMPAL ASC) AS ROWNUM
    FROM MAXADM.PALAVRA WHERE PALAVRA.NMPAL LIKE '$busca%'
) AS P 
WHERE P.ROWNUM BETWEEN $offset AND $offsetend

因此您显然无法从中选择PALAVRA.CODPAL, PALAVRA.NMPAL, PALAVRA.NMLIBTRANS

尝试将查询重写为

SELECT P.CODPAL, P.NMPAL, P.NMLIBTRANS 
FROM (
  SELECT 
    PALAVRA.CODPAL, PALAVRA.NMPAL, PALAVRA.NMLIBTRANS,
    ROW_NUMBER() OVER (ORDER BY PALAVRA.NMPAL ASC) AS ROWNUM
  FROM MAXADM.PALAVRA WHERE PALAVRA.NMPAL LIKE '$busca%'
) AS P 
WHERE P.ROWNUM BETWEEN $offset AND $offsetend

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL Server分页具有大量记录

来自分类Dev

SQL Server分页具有大量记录

来自分类Dev

使用Oracle SQL Developer连接db2,而db2具有DATA_ENCRYPT

来自分类Dev

具有带有嵌套表表达式的子句的DB2 SQL

来自分类Dev

具有“或”运算符的DB2 SQL正则表达式

来自分类Dev

如何在DB2的SQL Merge语句中具有AND&OR条件

来自分类Dev

具有分页和计数的SQL Server查询

来自分类Dev

使用db2创建分页

来自分类Dev

在db2的fetch语句中使用sql变量

来自分类Dev

具有返回表(udtf)和游标的DB2 sql函数将无法编译(错误:子句是互斥的)

来自分类Dev

SQL帖子分页,每个帖子有3条最新评论

来自分类Dev

SQL Server 2012-没有订单子句的分页

来自分类Dev

SQL帖子分页,每个帖子有3条最新评论

来自分类Dev

db2 sql,如何仅在具有一个表的同一查询中获取最小值和最大值?

来自分类Dev

SQL Server 2008 R2中的有效分页

来自分类Dev

SQL Server 2008 R2中的有效分页

来自分类Dev

SQL DB2如何将日期变量应用于内部查询?

来自分类Dev

使用SQL删除DB2约束

来自分类Dev

SQL和DB2创建命令

来自分类Dev

DB2 SQL更新表值

来自分类Dev

SQL查询-db2 / 400 iseries

来自分类Dev

SQL DB2上的减法功能

来自分类Dev

DB2 SQL触发器

来自分类Dev

在DB2的UPDATE sql中加入

来自分类Dev

DB2 SQL CONCAT和计数

来自分类Dev

部署了DB2 / SQL命令

来自分类Dev

Cobol DB2 SQL查询-NOT IN参数

来自分类Dev

DB2 SQL触发器

来自分类Dev

SQL DB2查询语法问题