sql - 为什么 db2 中的 IN 子句在我的数据库查询中不起作用
问题描述
也许你们中的一些人会知道出了什么问题。解释为什么IN
当我有一个字符串时该子句在 DB2 中不起作用。例如:
WHERE CODE IN ('123', '234', '345')
不返回任何东西。但是当我在开头放一个数字时,例如0:```
WHERE CODE IN (0, '123', '234', '345')
突然,对于IN
子句中指定的所有值,开始返回数据。
魔法。我不知道发生了什么事。
请帮忙。
解决方案
我可以想象如果你code
在哪里有一串数字会发生这种情况。而且,它包含以下值:
00123
123.0
在这种情况下,值作为字符串,比较是作为一个字符串,没有直接匹配。
只需向列表中添加一个数字即可将IN
列表更改为数字。如果你有类似的东西'abc'
,你会得到一个类型转换错误。
然后将转换更改为数字。并且当转换为数字时,某些字符串(与字符串不匹配)可能会与数字匹配。
推荐阅读
- javascript - 如何使用 Node.JS 编辑当前以上的控制台行?
- java - GSON 序列化因自定义对象而失败
- .net - Ef Core 3.1 值转换器
- node.js - 在构建 React.js 上设置环境变量
- dialogflow-es - 无法让丰富的按钮在对话流上工作。它返回空响应
- reactjs - 如何在useEffect-React加载的组件中渲染内容
- docker - 将内容从不同的 docker 镜像复制到在 k8s 作业中运行的容器
- kotlin - 如何在 Kotlin 中以位、最小值和最大值输出 Int 大小?
- c# - 如何在c#中使用``
- php - 无法退还 EasyPost 测试货件