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 @ 2024-06-25 14:40  海乐学习  阅读(3)  评论(0编辑  收藏  举报