sql 判断 某列中是否包含 某种符号

Oracle 语法:

SELECT CASE
    WHEN INSTR(your_column, '-') > 0 THEN '包含减号'
    ELSE '不包含减号'
END AS contains_hyphen
FROM your_table;

示例一:

判断  sessionid 列中 是否 包含 “  -  ” 号,当包含则 去掉 “  -  ” 号之后的数据,若不包含则显示 原 sessionid 列的数据

SELECT sessionid  , 
  CASE
    WHEN INSTR(sessionid, '-') > 0 THEN SUBSTR(sessionid, 1, INSTR(sessionid, '-') - 1)
    ELSE sessionid
  END as sessionidnew
FROM cti_cdr  
where timestart<='2024-06-25 16:50:00' and timestart>='2024-06-13 16:15:00' 

示例二:

需要用 这个查询出来的新列 sessionidnew 当组合查询和条件时

SELECT cti_satisfaction.callid,  cti_satisfaction.surveyresult,cti_cdr.recording,cti_cdr.sessionid  
FROM cti_cdr INNER JOIN cti_satisfaction  ON  
  CASE
    WHEN INSTR(cti_cdr.sessionid, '-') > 0 THEN SUBSTR(cti_cdr.sessionid, 1, INSTR(cti_cdr.sessionid, '-') - 1)
    ELSE cti_cdr.sessionid
  END   = cti_satisfaction.callid 
where cti_cdr.timestart<='2024-06-25 16:50:00' and cti_cdr.timestart>='2024-06-13 16:15:00' 

 

posted @   海乐学习  阅读(114)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2023-06-25 SQL 查看某一字段 有重复的数据
点击右上角即可分享
微信分享提示