sql如下:select (case when '{10}' = 'no' then '' else ' and (CASE WHEN T2.C700020017<>0 AND T2.C700020017>T2.C710020022 THEN "已结单" WHEN T2.C700020017=0 AND T2.C710020022<(sysdate-TO_DATE("19700101","yyyymmdd"))*86400-28800 THEN "已接单" ELSE "未结单" END)= '||'''{10}''' end) c from dual
得到的结果是:
and (CASE WHEN T2.C700020017<>0 AND T2.C700020017>T2.C710020022 THEN "已结单" WHEN T2.C700020017=0 AND T2.C710020022<(sysdate-TO_DATE("19700101","yyyymmdd"))*86400-28800 THEN "已结单" ELSE "未结单" END)= '{10}'我想要的结果是:
and (CASE WHEN T2.C700020017<>0 AND T2.C700020017>T2.C710020022 THEN '已结单' WHEN T2.C700020017=0 AND T2.C710020022<(sysdate-TO_DATE('19700101','yyyymmdd'))*86400-28800 THEN "已结单" ELSE '未结单' END)= '{10}'
得到的结果是:
and (CASE WHEN T2.C700020017<>0 AND T2.C700020017>T2.C710020022 THEN "已结单" WHEN T2.C700020017=0 AND T2.C710020022<(sysdate-TO_DATE("19700101","yyyymmdd"))*86400-28800 THEN "已结单" ELSE "未结单" END)= '{10}'我想要的结果是:
and (CASE WHEN T2.C700020017<>0 AND T2.C700020017>T2.C710020022 THEN '已结单' WHEN T2.C700020017=0 AND T2.C710020022<(sysdate-TO_DATE('19700101','yyyymmdd'))*86400-28800 THEN "已结单" ELSE '未结单' END)= '{10}'
为啥加3个单引号?sql整个怎么改
select (case when '{10}' = 'no' then '' else ''' and (CASE WHEN T2.C700020017<>0 AND T2.C700020017>T2.C710020022 THEN '''已超时''' WHEN T2.C700020017=0 AND T2.C710020022<(sysdate-TO_DATE('19700101','yyyymmdd'))*86400-28800 THEN '''已超时''' ELSE '''未超时''' END)= '||'''{10}''' end) c from dual
CASE WHEN T2.C700020017<>0 AND T2.C700020017>T2.C710020022 THEN ''已结单'' WHEN T2.C700020017=0 AND T2.C710020022<(sysdate-TO_DATE(''19700101'',''yyyymmdd''))*86400-28800 THEN ''已接单'' ELSE ''未结单'' END
)= ''||''{10}''' END from dual