一个sql语句,包含有几乎所有标准查询语法

从给定的SQL语句中,我们可以解析出几乎所有的标准SQL查询语法的使用场景,这不仅包括了基本的SELECT、FROM、WHERE子句,还涵盖了更高级的功能如DISTINCT、GROUP BY、HAVING、JOIN、子查询、CASE WHEN表达式、函数调用以及字符串操作等。下面将对这些知识点进行详细解析。 ### SELECT 子句 SELECT子句用于指定要从数据库中检索哪些列。在示例SQL语句中,我们看到了多个字段的选择,包括: - `DISTINCT SUBSTRING(KMM102.KMM102_BGT_TYPE, 1, 4) AS BGT_TYPE`:这里使用DISTINCT关键字确保结果集中的BGT_TYPE字段值是唯一的。 - `CASE WHEN... THEN... ELSE... END`:这是一个条件表达式,用于根据不同的条件返回不同的值。在这个例子中,它被用来转换`KMM102.KMM102_BGT_TYPE`字段的部分值,例如当其为"09"时返回"1","10"时返回"2",以此类推。 - `SUM(ISNULL(..., 0))`:SUM函数用于计算总和,而ISNULL函数则确保当字段值为NULL时,其默认值为0,避免了空值导致的错误。 ### FROM 和 JOIN 子句 FROM子句指定了查询数据来源的表。在示例中,主要的数据源是`KMM102`表,而通过子查询,我们还看到与`KMC101`表的连接,用于获取`BGT_NAME`字段的值。虽然JOIN关键字没有直接出现,但通过子查询实现的多表关联同样体现了JOIN的概念。 ### WHERE 子句 WHERE子句用于过滤记录,只返回满足特定条件的行。在给定的SQL语句中,虽然没有直接的WHERE子句,但在子查询和CASE WHEN表达式中可以看到条件过滤的使用,例如: - `(KMC101.KMC101_TYPE = "BUDGETCODE") AND (KMC101.KMC101_CODE = SUBSTRING(KMM102.KMM102_BGT_TYPE, 1, 4) + "00")`:这是子查询中的过滤条件,用于从`KMC101`表中选择符合特定类型和代码的记录。 ### GROUP BY 和 HAVING 子句 GROUP BY子句用于将数据按一个或多个列进行分组,HAVING子句则用于过滤这些分组,仅保留满足特定条件的组。在示例中,虽然没有显式的GROUP BY和HAVING子句,但从对各个月份预算金额的汇总来看,存在对数据进行分组和汇总的操作。 ### CASE WHEN 表达式 CASE WHEN表达式提供了一种基于不同条件返回不同值的方法。在示例中,CASE WHEN用于转换`KMM102_BGT_TYPE`的值,并计算特定条件下的金额总和。 ### 函数调用和字符串操作 示例中还展示了函数调用和字符串操作的使用,如`SUBSTRING`用于提取字符串的一部分,`CHARINDEX`用于查找字符串中的位置,`CONVERT`用于转换数据类型(例如将日期转换为字符),以及`ISNULL`用于处理NULL值。 这个SQL语句是一个复杂查询的典范,涵盖了SQL语言的大部分关键特性,对于理解如何构建和优化SQL查询具有很高的参考价值。





























SELECT DISTINCT SUBSTRING( KMM102.KMM102_BGT_TYPE,1,4 ) AS BGT_TYPE,
( CASE SUBSTRING( KMM102.KMM102_BGT_TYPE,3,2 ) WHEN "09" THEN "1" WHEN "10" THEN "2"
WHEN "11" THEN "3" ELSE "9" END ) AS BGT_CLASS,
SUBSTRING( KMM102.KMM102_BGT_TYPE,1,2 ) AS BGT_TEAM,
( ISNULL( (SELECT SUBSTRING(KMC101.KMC101_NAME,CHARINDEX("-",KMC101.KMC101_NAME)+1,12) FROM KMC101
WHERE ( KMC101.KMC101_TYPE = "BUDGETCODE" )
AND ( KMC101.KMC101_CODE = SUBSTRING( KMM102.KMM102_BGT_TYPE,1,4 ) + "00" ) ),"" ) ) AS BGT_NAME,
SUM( ISNULL( KMM101.KMM101_BGT_JAN,0 ) ) AS BGT_AMT01,
SUM( ISNULL( KMM101.KMM101_BGT_FEB,0 ) ) AS BGT_AMT02,
SUM( ISNULL( KMM101.KMM101_BGT_MAR,0 ) ) AS BGT_AMT03,
SUM( ISNULL( KMM101.KMM101_BGT_APR,0 ) ) AS BGT_AMT04,
SUM( ISNULL( KMM101.KMM101_BGT_MAY,0 ) ) AS BGT_AMT05,
SUM( ISNULL( KMM101.KMM101_BGT_JUN,0 ) ) AS BGT_AMT06,
SUM( ISNULL( KMM101.KMM101_BGT_JUL,0 ) ) AS BGT_AMT07,
SUM( ISNULL( KMM101.KMM101_BGT_AUG,0 ) ) AS BGT_AMT08,
SUM( ISNULL( KMM101.KMM101_BGT_SEP,0 ) ) AS BGT_AMT09,
SUM( ISNULL( KMM101.KMM101_BGT_OCT,0 ) ) AS BGT_AMT10,
SUM( ISNULL( KMM101.KMM101_BGT_NOV,0 ) ) AS BGT_AMT11,
SUM( ISNULL( KMM101.KMM101_BGT_DEC,0 ) ) AS BGT_AMT12,
( SUM( ISNULL( KMM101.KMM101_BGT_JAN,0 ) ) + SUM( ISNULL( KMM101.KMM101_BGT_FEB,0 ) ) +
SUM( ISNULL( KMM101.KMM101_BGT_MAR,0 ) ) + SUM( ISNULL( KMM101.KMM101_BGT_APR,0 ) ) +
SUM( ISNULL( KMM101.KMM101_BGT_MAY,0 ) ) + SUM( ISNULL( KMM101.KMM101_BGT_JUN,0 ) ) +
SUM( ISNULL( KMM101.KMM101_BGT_JUL,0 ) ) + SUM( ISNULL( KMM101.KMM101_BGT_AUG,0 ) ) +
SUM( ISNULL( KMM101.KMM101_BGT_SEP,0 ) ) + SUM( ISNULL( KMM101.KMM101_BGT_OCT,0 ) ) +
SUM( ISNULL( KMM101.KMM101_BGT_NOV,0 ) ) + SUM( ISNULL( KMM101.KMM101_BGT_DEC,0 ) ) ) AS AMT01,

- dreamwearver2012-10-31那么长啊,有没有SQL的标准介绍方面的书籍啊。

- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- PyTorch手把手教你跑通第一个神经网络
- 塑料成型模具研究设计与CAD课程研究设计.doc
- Flash动画设计方案.doc
- 关系数据库设计理论练习题(答案).doc
- 从社会语言学角度看网络语言的发展.docx
- 图书馆网络安全的研究与对策.docx
- C语言课程方案设计书及任务书-学生信息管理系统.doc
- 大数据时代汽车保险产业发展的机遇与挑战.docx
- CAD施工图用(砖的规格水泥砂浆混凝土钢筋).doc
- 电力物联网技术的应用分析.docx
- 人工智能在城市公共传播中的应用研究-基于善治理论的视角.docx
- 大数据背景下人事档案信息化建设路径探究.docx
- 16章工程信息化管理.doc
- 算法与程序设计会考真题.doc
- 精选ppt网络营销经济调查市场研究模板课件模板.pptx
- MATLAB程序设计与应用第二课后题答案.doc


