日期:2014-05-17  浏览次数:20508 次

关于中文字符多条件判断模糊查询问题,求教大大门
我现在有个数据表,网页上可选定义{ed_xmzt}的值 可以自己输入成中文 比如为(完成)、(未完成)、(全部)三个条件可选。在数据库中函数ord_status的值可能是 (填写完毕)、(待审核)、(审核中)、(审核完成)、(变更完成)。我想要做到以{ed_xmzt}来做判断查询。
当{ed_xmzt}为(全部)时,查询ord_status的值为任意的所有数据。
当{ed_xmzt}为(未完成)时,查询ord_status的值为 (填写完毕)、(待审核)、(审核中) 的所有数据。
当{ed_xmzt}为(完成)时,查询ord_status的值为 ( 审核完成 ) 的所有数据。
 
但是我的写法如下,报错,大大们指教下。谢过

(case when {ed_xmzt}='完成' then ord_status=' 审核完成 ' or ord_status=' 变更完成 ' when {ed_xmzt}='未完成' then ord_status<>' 审核完成 ' and ord_status<>' 变更完成 ' else ord_status<>'全部' end)

------解决方案--------------------
引用:
Quote: 引用:


CASE  ord_status  WHEN '审核完成' THEN '完成'
WHEN '填写完毕'  THEN '未完成',
WHEN '待审核'  THEN '未完成',
WHEN '审核中'  THEN '未完成',
ELSE '全部' 
END


大大 那{ed_xmzt}没有在这里面出现啊,我是通过网页定义的这个数据。在你的列子上没出现他。那怎么判断我在选择{ed_xmzt}的时候是用的那个数据呢。谢谢大大





select .... from TB
where {ed_xmzt} = CASE  ord_status  WHEN '审核完成' THEN '完成'
WHEN '填写完毕'  THEN '未完成',
WHEN '待审核'  THEN '未完成',
WHEN '审核中'  THEN '未完成',
ELSE '全部' 
END


放前面判断即可