SELECT L.id, L.name, L.zero_three_num, L.four_six_num, seven_nine_num, ten_or_more_num,
(L.zero_three_num+L.four_six_num+seven_nine_num+ten_or_more_num) total
FROM (SELECT r.id, r.name,
CASE ISNULL(s.zero_three_num,'')--处理null值,因为null与任务数相加都是null,这样结果集无法排序.
WHEN '' THEN 0 ELSE s.zero_three_num --如果不是null值则,使用原来的值.
END zero_three_num,--0至3岁人的数量
CASE ISNULL(s.four_six_num,'')
WHEN '' THEN 0 ELSE s.four_six_num
END four_six_num,--4至6岁
CASE ISNULL(s.seven_nine_num,'')
WHEN '' THEN 0 ELSE s.seven_nine_num
END seven_nine_num,-- 7至9岁
CASE ISNULL(s.ten_or_more_num,'')
WHEN '' THEN 0 ELSE s.ten_or_more_num
END ten_or_more_num --10岁以上
FROM gos_region r
LEFT OUTER JOIN
(SELECT t.${region_id_macro},
SUM(
CASE
WHEN t.child_age IN (0,1,2,3) THEN 1 ELSE 0
END) zero_three_num,--0至3岁人的数量
SUM(
CASE
WHEN t.child_age IN (4,5,6) THEN 1 ELSE 0
END) four_six_num, --4至6岁
SUM(
CASE
WHEN t.child_age IN (7,8,9) THEN 1 ELSE 0
END) seven_nine_num, -- 7至9岁
SUM(
CASE
WHEN t.child_age >=10 THEN 1 ELSE 0
END) ten_or_more_num --10岁以上
FROM "Xxx_INFO" t
WHERE to_char(t.publish_date, 'yyyy-MM-dd') >= ?
and to_char(t.publish_date, 'yyyy-MM-dd') <= ? AND t.publish_state='1'
GROUP BY t.${region_id_macro}
) s
ON r.id = s.${region_id_macro}
WHERE ${g2s_region_where} AND r.use2_flag=1
) L
ORDER BY total DESC;
分享到:
相关推荐
在SQL查询中,`CASE WHEN`、`EXISTS`、`NOT EXISTS`以及`IN`和`NOT IN`是常用的操作符,它们用于处理复杂的条件判断和数据筛选。这些概念对于理解和编写高效的SQL语句至关重要,尤其是在数据分析和数据库管理中。 `...
在SQL查询中,`CASE`语句是一种非常强大的条件判断工具,它允许我们在单个查询中根据不同的条件返回不同的结果。这个"SQL CASE及结构转换问题"的主题涉及到两个主要方面:`CASE`语句的使用以及如何处理SQL中的数据...
### CASE的用法 (Transact-SQL) #### 概述 `CASE` 是 Transact-SQL 中一个非常重要的关键字,用于根据不同的条件返回不同的结果。它支持两种主要的格式:简单表达式和搜索表达式。这两种格式都能有效地帮助开发者...
在 SQL 查询语言中,`CASE WHEN` 结构是一种非常有用的工具,可以用来根据条件返回不同的值。它的工作原理类似于编程语言中的 `if...else` 语句,但在 SQL 中用于创建动态列或进行复杂的条件判断。 #### 基本语法 ...
### SQL数据库转Access SQL语句改写:Case When Then When Then Else End #### 知识点一:SQL CASE WHEN THEN 结构与Access IIF及SWITCH函数对比 在进行SQL到Access SQL的转换过程中,一个重要的知识点是了解如何...
本文档介绍了SQL中case...when的用法。
### SQL中的Case语法使用详解 在SQL查询语言中,`CASE`语句是一个非常重要的功能,它可以用来构建复杂的条件逻辑,实现对数据的灵活处理。本文将深入探讨SQL中的`CASE`语法及其应用场景。 #### 一、基本概念 `...
### SQL中的Case语句深入解析 在SQL查询语言中,`Case`语句是一个非常强大的功能,用于在查询中执行条件判断,它可以根据不同的条件返回不同的结果,这使得SQL能够处理更加复杂的数据筛选和转换需求。`Case`语句有...
### SQL Server 中 CASE 表达式的深入解析与应用实例 #### 概述 在 SQL Server 数据库管理系统中,`CASE` 表达式是一种非常强大的工具,用于在查询语句中进行条件判断和数据处理。它允许用户根据指定的条件返回...
《SQL经典面试题及答案解析》 SQL是Structured Query Language的缩写,是用于管理和处理关系数据库的标准语言。在面试中,SQL问题通常涉及到数据查询、聚合、分组、条件判断等多个方面,考察应聘者对数据库操作的...
在Oracle数据库中,`WHERE`子句是SQL查询语句的一部分,用于指定查询条件,而`CASE WHEN`语句则是一种条件表达式,允许我们基于不同的条件返回不同的值。将`CASE WHEN`嵌套在`WHERE`子句中,可以实现更复杂的逻辑...
在SQL语言中,`CASE`语句是一种非常重要的逻辑判断工具,它允许我们在查询中根据特定条件返回不同的值。在标题“条件时,则为SQL CASE;然后,NumericColumn,为ELSE 0 END”中,我们可以解读出一个具体的`CASE`语句...
sql 存储过程 常见的问题 自己用也可分享
SQL Server数据库中Case函数是Transact-SQL语言的关键组成部分,它主要用于进行条件逻辑处理。Case函数允许在数据库查询中根据条件动态地改变返回值,类似于编程语言中的if-else结构。在SQL Server中,Case函数分为...
mysql 中case when 遇到乱码解决。查询语句中含有case引起中文乱码解决方法
case语句 sql server case语句
MySQL中的CASE语句是SQL语言中的一个重要组成部分,它在存储过程和复杂查询中扮演着条件判断的角色,使得代码更加简洁易读。CASE语句提供了两种形式:简单CASE和可搜索CASE。 1. 简单CASE语句: 简单CASE语句主要...
根据给定文件的信息,本文将深入探讨SQL中的判断语句,特别是CASE表达式的使用方法及其在实际场景中的应用。此外,我们还将分析不同类型的CASE语句,并通过具体例子来加深理解。 ### SQL中的CASE表达式 #### CASE...
### Oracle CASE 语句介绍及应用案例 #### 一、Oracle CASE 语句概述 在 Oracle 数据库中,CASE 语句是一种非常实用且灵活的条件判断...在实际工作中,合理运用 CASE 语句能够极大地提高 SQL 查询的能力和效率。