Case 表达式在 SQL 查询中无法正常工作

2024-05-03

我想连接列supplier使用逗号分隔符创建表并将其放入名为“contact”的别名字段中。我使用过检查空值的案例。假设如果contact_number2则为空contact_number3将在别名字段中,反之亦然。这是我的查询

SELECT supplier_Name, supplier_Address, supplier_reference, contact_Number1,
       contact_number2, contact_number3,
      (case when contact_number2 is null then contact_number3 
            when contact_number3 is null then contact_number2 
            when contact_number3 is null and contact_number2 is null then 0
         -- when contact_number2 is not null and contact_number3 is not null then  CONCAT(CONCAT(contact_number2,','), contact_number3)
       end) as contact
FROM SUPPLIER

如果我使用第四个条件,那么它可以工作,但是如果我使用多个条件,那么它就不起作用。错误是ORA-00932: inconsistent datatypes: expected NUMBER got CHAR 00932. 00000 - "inconsistent datatypes: expected %s got %s"


第三种情况需要 VARCHAR,而您提供了 INT,因此它返回错误。变化是我将 0 替换为“0”。尝试这个:

SELECT supplier_Name,supplier_Address,supplier_reference,contact_Number1,contact_number2, contact_number3,   

  (case 
   when contact_number2 is null then contact_number3 
    when contact_number3 is null then contact_number2 
    when contact_number3 is null and contact_number2 is null then '0'
  when contact_number2 is not null and contact_number3 is not null then  CONCAT(CONCAT(contact_number2,','), contact_number3)
   end)

   as contact
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Case 表达式在 SQL 查询中无法正常工作 的相关文章

  • 我不确定在 SQL 中声明这些变量时出了什么问题

    我有以下代码 USE pricingdb go CREATE TABLE dbo Events 060107 2012 Date Time varchar 20 COLLATE SQL Latin1 General CP1 CI AS NU
  • 为什么我们不能有多个主键?

    我知道表中不能有超过 1 个主键 但技术原因是什么 直接拉取自SO https stackoverflow com questions 217945 can i have multiple primary keys in a single
  • MySql如何通过过滤多列来限制多个数字?

    我想从数据库中获取 4 个不同类别的 50 个问题 我想要 4 个不同类别中每个类别的不同数量的问题 我的结果集必须包含第一类 12 个问题 第二类 20 个问题 第三类 10 个问题和第四类 8 个问题 我的问题表中总共有 50 个问题
  • 为什么 sql 字段名称中不应该包含逗号?

    人们一直告诉我列名中不应包含空格 我只是想知道 这是为什么 这是我为学校创建的一些数据库表遇到的问题 字段名称包括 Preble 和 Darke 相反 它们需要是 普雷布尔县 俄亥俄州 和 达克县 俄亥俄州 如果它们是行名称 我只需创建一个
  • 按小时拆分日期/时间数据并将日期/时间范围展开为行

    我正在尝试使用 SQL Server 将一系列日期 时间数据扩展为多行 例如 我的数据看起来像 Date StartTime EndTime EmployeeID ShiftType 10 1 2019 8 30 00AM 4 57 00P
  • Oracle:如何查找模式中上次更新(任何表)的时间戳?

    有一个Oracle数据库模式 数据很小 但仍然有10 15个表左右 它包含一种配置 路由表 有一个应用程序必须不时轮询此架构 不得使用通知 如果架构中没有数据更新 应用程序应使用其当前的内存版本 如果任何表有任何更新 应用程序应将所有表重新
  • 我可以从匿名 PL/SQL 块向 PHP 返回值吗?

    我正在使用 PHP 和 OCI8 执行匿名 Oracle PL SQL 代码块 有没有什么方法可以让我绑定一个变量并在块完成后获取其输出 就像我以类似的方式调用存储过程时一样 SQL declare something varchar2 I
  • Power BI 中的区分大小写

    我想知道是否可以在 Power BI 中配置区分大小写 我在 Oracle 数据库中有数据 其中主键EXample不同于exampLE 但如果我想将其导入到Power BI中 就不行了 任何想法 目前 我认为最好的选择是在查询编辑器阶段为主
  • 以无法破坏的方式限制表中允许的记录数量

    我们有一个 Web 应用程序 Grails 我们将根据用户数量为其出售许可证 数据库 Oracle 10g 中有一个表保存用户 客户将托管自己的软件和数据库副本 有人可以建议一些策略来限制允许存在于用户表中的记录数量 从而使客户无法合理地破
  • Postgresql 中的 id 列位置重要吗?

    我正在测试删除主键列 id 的迁移 我想使用外键作为主键 当我运行并恢复迁移时 我看到表的状态是相同的 只是 id 列现在是最后一个 它会以任何方式改变我的数据库的行为吗 我是否应该费心去恢复迁移恢复代码中的列顺序 理论上一切都应该没问题
  • MySQL 中的断言

    我有一个针对大型数据库运行的 SQL 脚本 我想在开始时提出几个简单的查询 作为健全性检查 有没有办法在MySQL中写断言 或者任何类型的 选择 如果它与该值不匹配 则中止整个脚本 一些疯狂的代码 要点是 SET可能会引发 mysql 变量
  • 获取查询的行号

    我有一个查询将返回一行 当表排序时 有什么方法可以找到我正在查询的行的行索引吗 我试过了rowid但当我期待第 7 行时却得到了 582 Eg CategoryID Name I9GDS720K4 CatA LPQTOR25XR CatB
  • 在 Oracle 中使用触发器记录对表的更改

    我的一门课有一个项目 当我们的两个表发生更改时 我们需要创建一个日志 插入 更新 删除 我们需要使用Oracle触发器和PL SQL 在日志文件中 我们需要记录用户ID 日期时间 IP地址和事件 插入 更新 删除 我知道如何设置触发器 但我
  • 创建 SYS_REFCURSOR 并将其作为输入参数从 Java 传递给 Oracle 过程

    我必须与具有 SYS REFCURSOR 作为输入参数的外部 Oracle 过程进行通信 过程 merge objects varchar2 中的 p table name p id array 中 varchar2 SYS REFCURS
  • 如何将自定义类型数组传递给 Postgres 函数

    我有一个自定义类型 CREATE TYPE mytype as id uuid amount numeric 13 4 我想将它传递给具有以下签名的函数 CREATE FUNCTION myschema myfunction id uuid
  • CREATE TABLE 和 CREATE ANY TABLE 权限之间的区别

    我不明白这两种特权之间的区别 我找到了这两个解释 但这对我没有帮助 CREATE TABLE gt Enables a user to create a table owned by that user CREATE ANY TABLE g
  • 消息 102,级别 15,状态 1,第 1 行“ ”附近的语法不正确

    我试图从临时表中查询 但不断收到此消息 Msg 102 Level 15 State 1 Line 1 Incorrect syntax near 有人能告诉我问题是什么吗 是因为要转换吗 查询是 select compid 2 conve
  • ROWNUM 的 OracleType 是什么

    我试图参数化所有现有的 sql 但以下代码给了我一个问题 command CommandText String Format SELECT FROM 0 WHERE ROWNUM lt maxRecords command CommandT
  • Oracle:如果表存在

    我正在为 Oracle 数据库编写一些迁移脚本 并希望 Oracle 有类似于 MySQL 的东西IF EXISTS构造 具体来说 每当我想删除 MySQL 中的表时 我都会执行类似的操作 DROP TABLE IF EXISTS tabl
  • SQL:查找每个跑步者跑步之间的平均天数

    因此 如果我们给出下表 runner ran Carol 2011 02 01 Alice 2011 02 01 Bob 2011 02 01 Carol 2011 02 02 Bob 2011 02 02 Bob 2011 02 03 B

随机推荐

  • 使用 OpenCV 查找重叠/复杂的圆

    我想计算红圈半径 图2 我在使用 OpenCV 的 HoughCircles 找到这些圆圈时遇到了麻烦 如图所示 2 我只能使用 HoughCircles 找到中心以黑色显示的小圆圈 original fig 2 由于我知道红色圆圈的中心
  • 如何使用单元格内的十六进制颜色值突出显示单元格?

    我有一个符号和匹配的十六进制颜色的电子表格 我想用单元格内的十六进制颜色填充单元格本身 或其旁边的单元格 我读过一些有关 条件格式 的内容 我认为这就是实现的方法 我怎样才能达到我想要的结果 条件格式无法实现所有颜色 假设 Row1 包含数
  • 未找到 EOF 标记 - 如何在 PyPDF 和 PyPDF2 中修复?

    我正在尝试使用 Python 将几个 PDF 文件合并为一个 PDF 文件 我已经尝试过 PyPDF 和 PyPDF2 在某些文件上 它们都抛出相同的错误 PdfReadError 未找到 EOF 标记 这是我的代码 page files
  • 如何通过谓词将序列分成两部分?

    如何通过谓词将序列拆分为两个列表 替代方案 我可以使用filter and filterNot 或者编写我自己的方法 但是没有更好的更通用 内置 方法吗 通过使用partition方法 scala gt List 1 2 3 4 parti
  • 为什么 ruby​​ 方法没有词法作用域?

    例如 def test a a is for apple def inner method a something this will refer to a different a end inner method puts a end 这
  • 将 JSON 数据从服务发送到 Android 中的 UI

    要求是 我有一个后台服务 在该服务中我正在执行 REST 调用来获取 JSON 数据 我想将 JSON 数据发送到 UI 并更新内容 我可以使用的一种方法是将整个 JSON 字符串存储在 SharedPreferences 中并在 UI 中
  • 使用R中的XLSX包在Excel中打印data.frame时出错

    数据框是可见的 没有任何错误 但是 当使用 XLSX 包的 write xlsx 函数打印相同内容时 会出现错误 Error in jcall cell V setCellValue value method setCellValue wi
  • DragTarget onWillAccept 和 onAccept 未触发

    我从 Flutter 开始 无法使用拖放功能 我遵循了文档 但不知道我做错了什么 此示例应用程序显示三个正方形 蓝色是可拖动的 其他的都设置了 DragTarget 一个在方块内 一个在方块外 当我拖动蓝色方块时 它会打印拖动开始的信息 但
  • Z3统计中内存使用量的单位是什么?

    z3 统计中测量内存使用情况的单位是什么 是MB还是KB 记忆到底意味着什么 是执行期间的最大内存使用量还是所有分配的总和 它是执行期间最大堆大小的近似值 并通过 cmd context cpp 中的以下函数将其添加到统计对象中 void
  • 调度队列:如何判断它们是否正在运行以及如何停止它们

    我只是在玩 GCD 并且编写了一个 CoinFlipper 玩具应用程序 抛硬币的方法如下 void flipCoins NSUInteger nFlips Create the queues for work dispatch queue
  • flash/flex:渐进式下载与 rtmp

    我试图理解并真正确定何时在 Flex flash 中使用渐进式下载与 rtmp 看来主要的一点是 rtmp 不与 http 一起提供服务 而渐进式下载则由 http 提供 由于它不是 rtmp 因此资源受到保护 因为无法从 swf 外部连接
  • 如何检查数据行中是否存在具有给定名称的列

    我想从数据行中的循环插入一个值 因此在数据行中输入值之前 我想检查表中是否存在特定列名称 请告诉我如何检查 首选 vb net 我得到了答案 并且它正在工作 它是 If dr Table Columns Contains columnnam
  • 未提供 Bouncycastle 加密算法

    我正在尝试将 BouncyCastle 与 android 一起使用来实现 ECDH 和 EL Gamal 我添加了 bouncycastle jar 文件 bcprov jdk16 144 jar 并编写了一些适用于我的计算机 jvm 的
  • gluPerspective 与 gluOrtho2D

    我查看了 MSDN 上关于这两个函数的文档 但是 我不太明白这两个功能之间的区别 一个是用于设置 3D 相机视图 另一个是用于设置 2D 相机视图 如果能得到解答就太好了 预先感谢您的评论 正交投影基本上是没有透视的 3D 投影 本质上 这
  • Jenkins 管道中的导出命令

    如何在 Jenkins 管道中添加 导出 unix 命令 我里面有一个詹金斯 舞台 和 步骤 导出命令的语法是什么 我需要使用导出命令设置环境变量 PATH 您可以更新 PATH像这样 pipeline agent label docker
  • 使用perl求中位数、众数、标准差?

    我有一个数字数组 计算数据集的中位数 众数和标准差的最简单方法是什么 Statistics Basic Mean http p3rl org Statistics Basic Mean Statistics Basic Median htt
  • MySQL 索引创建速度很慢(在 EC2 上)

    我有一张相当简单的桌子 requestparams requestid varchar 64 NOT NULL requestString text ENGINE MyISAM 使用 LOAD DATA 填充表后 我正在更改架构并将 req
  • 如何安排函数在 Qt for Python 的主 UI 线程上运行?

    我正在移植一个 Python GTK 应用程序 因此它使用 Qt for Python PySide2 它使用Python标准实现工作线程threading模块和工作线程使用Gdk threads add idle 与主 GUI 线程交互
  • Jetty9 - Jetty 不是从单独的 {jetty.base} 运行

    在启动 jetty9 服务器作为服务时 我看到以下警告 我对此一无所知 警告 oejs HomeBaseWarning main Jetty 的此实例不是从单独的 jetty base 目录运行 不建议这样做 请参阅文档 http www
  • Case 表达式在 SQL 查询中无法正常工作

    我想连接列supplier使用逗号分隔符创建表并将其放入名为 contact 的别名字段中 我使用过检查空值的案例 假设如果contact number2则为空contact number3将在别名字段中 反之亦然 这是我的查询 SELEC