You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DB2 SELECT语句未返回预期行的问题求助

查询无结果的原因及修复方案

问题分析

  • 语法错误:你的查询语句存在两处语法问题:
    • var char是拼写错误,正确写法应为varchar;
    • 最后一个cast函数缺少闭合的右括号),这会导致查询无法正常执行(若实际执行语句无此错误可忽略)。
  • 数值转字符串的隐式丢失:cast(080138738 as varchar(10))中,080138738作为数字字面量,数据库会自动忽略开头的0,转换后的字符串实际是'80138738',而非你预期的'080138738'。
  • 字符串比较逻辑不匹配:表中pkey值为'08013878',与转换后的'80138738'做字符串比较时,第一个字符'0'小于'8',因此'08013878' >= '80138738'的条件不成立,不会返回结果。

修复方案

  1. 修正语法错误:将var char改为varchar,补上cast函数的右括号,修正后的基础语句:
select * from tbl1 as tbl1 
where tbl1.pkey >= cast(080138738 as varchar(10)) 
and tbl1.pkey <= cast(080138738 as varchar(10));
  1. 直接使用字符串字面量:避免数字转字符串丢失开头0的问题,直接用带引号的字符串作为条件值:
select * from tbl1 as tbl1 
where tbl1.pkey >= '080138738' 
and tbl1.pkey <= '080138738';
  1. 核对匹配范围:若表中pkey是8位的'08013878',而你查询的是9位的'080138738',两者长度不同,字符串比较必然不相等。请确认是否为输入笔误,或是调整范围以包含目标值。

内容的提问来源于stack exchange,提问作者ebi rezaei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 00:20:56