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'