case when else end:
case -------------如果
when sex='1' then '男' -------------sex='1',则返回值'男'when sex='2' then '女' -------------sex='2',则返回值'女'
else 0 -------------其他的返回'其他’
end -------------结束
distinct : 在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。关键词 distinct用于返回唯一不同的值。
<>0 : 在SQL语句中相当于 !=
遇到的实际情况:
String sql = "SELECT DISTINCT a.niche_id, a.project_name, a.before_sale, a.in_sale, a.end_date_time," +
" (case when (select count(*) from pre_progress where project_id=a.niche_id and status = 0) <> 0" +
" then (select task_name from pre_task where pre_task_id = (select min(pre_task_id) from pre_progress where status=0 and project_id=a.niche_id))" +
" else '' end) before_wait, (case when (select count(*) from in_sale where project_id=a.niche_id and status = 0) <> 0" +
" then (select task_name from pre_task where pre_task_id = (select min(pre_task_id) from in_sale where status=0 and project_id=a.niche_id))" +
" else '' end) in_wait FROM niche as a where a.type = 1"