例如,要将下面的数据 以GROUP_ID进行分组,一组一行,一组中的多个PRODUCT_ID用逗号分隔,select 出来成如下结果: 在Sql Server中,我目前想到的一种方法是写一个函数,如下: CREATE FUNCTION [dbo].[FN_GetProductsByGroup] ( @GroupId int ) ) AS BEGIN ) SET @ReturnValue = '' SELECT @ReturnValue=@ReturnValue + RTRIM(LTRIM(PRO…
例子:在一个StudentScore表中,有序号ID,班级ClassId,学生姓名Name,性别Sex,语文成绩ChineseScore,数学成绩MathScore,平均成绩AverageScore等等一些学生成绩及个人信息字段 问一:每个班级中,平均成绩在60(含60)分以上的学生人数? 问二:每个班级中本次考试平均成绩是班级前三的同学的所有信息? 问三:每个班级中语文与数学都达到60(含60)分以上的同学的所有信息? 一.Group By 分组 group by ClassId group…
SET QUOTED_IDENTIFIER ON SET ANSI_NULLS ON GO --功能:分拆字符串 --参数:@String:要分拆的字符串:@Delimiter:分割符号 --返回值:@ValueTable结果表 create FUNCTION dbo.fn_Split( ), ) ) ),[id] int) BEGIN ), @Pos int, @NextPos int, ), @id int SET @NextString = '' ) SET @String = @Stri…
/*****************************根据时间查询每天的数据***************************************/ @tm_start:开始时间 @tm_end:结束时间 sql语句: Select CONVERT(DATE, c.dt_rec) DT,COUNT(*) CT From dbo.YY_client c where c.dt_rec between CONVERT(varchar(50),@tm_start,20…
今天在工作中遇到了一个很实际的问题,客户在OA接口的员工休假中间表中提供了连续时间段的休假记录,例如: 张三,2018-12-1 ~2018-12-31 ,病假,31天.这样带来的问题是,如果我需要统计张三从12月1号到12月15号的休假天数,单从这一整条连续记录是无法统计的.这时候就需要我们将一条长记录进行拆分. 这里记录下我自己的思路: 1:利用系统表得到0-2047的序列 ,2048*2048绝对够用了吧 SELECT sv.number AS n FROM MASTER.dbo.spt_…
1.如果查询日期参数为'2017/02/21',而数据库表中的字段为'2017/02/21 12:34:16.963',则需要格式化一下日期才能查询出来,如下 select * from table t where t.date between CONVERT(datetime, '2017/02/21', 120) and CONVERT(datetime, '2017/02/21', 120)+' 23:59:59') ; 查询的范围为'2017/02/21 00:00:00'~'2017/…
------------------MS Sql Server------------------ declare @ctrBeginTime =null; if(@ctrBeginTime Is NUll) begin set @ctrBeginTime= GETDATE(); end declare @statisticsDate as datetime = CONVERT(varchar(10),@ctrBeginTime,120); /*统计时间*/ declare @ThisYear1…