需求:SUM统计总数之后再列转行。查询结果:原始版本SQL:select nvl(sum(OVERTIME_REPAIR ),0) CNT, '维修超时' CELL from ( SELECT SUM(CASE WHEN R
需求:SUM统计总数之后再列转行。查询结果:原始版本SQL:select nvl(sum(OVERTIME_REPAIR ),0) CNT, '维修超时' CELL from ( SELECT SUM(CASE WHEN R
环境:windows server 2012 R2 (64位系统)
安装mysql说来简单,但安装后要配置用户和权限,有那么一点点流程和语法记录一下。
https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.21-winx64.zip
应用场景:一般是菜单、组织层级、上下级权限等功能使用,数据库结构就是有id和pid(上级ID)
虽然说用循环语句也能解决,但逻辑还是不够简洁,下面贴上SQL代码:
WITH cte AS ( SELECT OrgId , ParentId , IsArea , IsActive , sort , CAST( OrgId AS NVARCHAR(MAX)) path, 1 AS OrgLevel FROM dbo.SysOrg WHERE ParentId = 0 UNION ALL SELECT o.OrgId , o.ParentId , o.IsArea , o.IsActive , o.sort , c.path + '' + CAST( o.OrgId AS NVARCHAR(MAX)) path,-- 递归,路径为父路径+当前路径 c.OrgLevel+1 AS OrgLevel -- 递归,层数为父级层数+1 FROM SysOrg o JOIN cte c ON o.ParentId = c.OrgId ) SELECT * FROM cte;
SQL SERVER中的tinyint:从 0 到 255 的整型数据。存储大小为 1 字节。
安装到最后出现问题,无响应,那么不要紧,前面的安装成功了,只是没配置。关闭之后,直接命令开启服务,再使用。
数据库表和数据准备:
GO
/****** 对象: StoredProcedure [dbo].[pro_GenerateTrigger] 脚本日期: 08/13/2012 10:10:16 ******/
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[pro_GenerateTrigger]') AND type in (N'P', N'PC'))
GO
/****** 对象: StoredProcedure [dbo].[pro_GenerateCheckInput_webControl] 脚本日期: 08/13/2012 10:10:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/****** 对象: UserDefinedFunction [dbo].[fun_get_LowerFirst] 脚本日期: 08/04/2012 13:03:56 ******/
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[fun_get_comment]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
表数据:
Powered By Z-BlogPHP 1.7.3
Copyright 2024-2027 pukuimin Rights Reserved.
粤ICP备17100155号