2 qq 31071631 qq_31071631 于 2016.02.17 09:20 提问

那在sql server中该怎么写才能达到mysql中的分组效果呢,分出的结果不一样

SELECT CASE WHEN AGE <= 10 THEN '1' WHEN AGE > 10 AND AGE <= 20 THEN '2' WHEN AGE > 20 AND AGE <= 30 THEN '3' WHEN AGE > 30 AND AGE <= 40 THEN '4' WHEN AGE > 40 AND AGE <= 50 THEN '5' WHEN AGE > 50 AND AGE <= 60 THEN '6' WHEN AGE > 60 AND AGE <= 70 THEN '7' WHEN AGE > 70 AND AGE <= 80 THEN '8' WHEN AGE > 80 AND AGE <= 90 THEN '9' WHEN AGE > 90 AND AGE <= 100 THEN 'a' WHEN AGE > 100 THEN 'b' END allshuju ,COUNT(*) renshu,OUT_MAIN_DIAG_RST leibie FROM WORK_BASY_DATA where 1=1 and OUT_DT >= '2012-10-1' and OUT_DT <= '2012-10-31' GROUP BY allshuju,OUT_MAIN_DIAG_RST having OUT_MAIN_DIAG_RST!='' AND allshuju!=''

4个回答

bdmh
bdmh   Ds   Rxr 2016.02.17 09:23

sqlserver 中也有 case when 一样的

qq_31071631
qq_31071631 效果不一样
2 年多之前 回复
qq_31071631
qq_31071631 效果不一样
2 年多之前 回复
qq_31071631
qq_31071631 效果不一样
2 年多之前 回复
enpterexpress
enpterexpress   Rxr 2016.02.17 09:29

一样

qq_31071631
qq_31071631 分组效果不一样
2 年多之前 回复
qq_25093755
qq_25093755   2016.02.17 10:36

mysql和sql server差别不大

qq_31071631
qq_31071631 分出的结果不一样
2 年多之前 回复
ch21st
ch21st   2016.02.17 11:17

SQL Server也支持CASE WHEN,但你的写法在SQL Server会有问题,你的语句中allshuju不是实际的字段,而是一个别名,不能再GROUP BY中直接用
要不你把GROUP BY和HAVING后的allshuju换成上面的CASE WHEN完整判断,要不就在嵌套一层

 SELECT t.allshuju,t.OUT_MAIN_DIAG_RST ,COUNT(*) renshu FROM (
    SELECT 
    CASE 
    WHEN AGE <= 10 THEN '1' 
    WHEN AGE > 10 AND AGE <= 20 THEN '2' 
    WHEN AGE > 20 AND AGE <= 30 THEN '3' 
    WHEN AGE > 30 AND AGE <= 40 THEN '4' 
    WHEN AGE > 40 AND AGE <= 50 THEN '5' 
    WHEN AGE > 50 AND AGE <= 60 THEN '6' 
    WHEN AGE > 60 AND AGE <= 70 THEN '7' 
    WHEN AGE > 70 AND AGE <= 80 THEN '8' 
    WHEN AGE > 80 AND AGE <= 90 THEN '9' 
    WHEN AGE > 90 AND AGE <= 100 THEN 'a' 
    WHEN AGE > 100 THEN 'b' END allshuju 
    ,OUT_MAIN_DIAG_RST leibie 
    FROM WORK_BASY_DATA 
    where 1=1 and OUT_DT >= '2012-10-1' and OUT_DT <= '2012-10-31' 
) t 
GROUP BY t.allshuju,t.OUT_MAIN_DIAG_RST 
having t.OUT_MAIN_DIAG_RST!='' AND t.allshuju!=''
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
一样的sql语句,不一样的结果!
今天用程序写了个增删改查,其他还好,查的时候用到了模糊查询,其中字段包含有中文,尽管sql语句正确,就是查不到东西,后来直接在数据库中去尝试,发现,设置GBK时,sql语句可以查询出来数据,设置成utf8时就查询出空值,所以我就对数据库的字符集相关内容做了查询。以下是转载内容:   MySQL对中文的支持程度还是很有限的,尤其是新手,一旦出现乱码问题,就会头大。下面介绍几种乱码问题的现象原
SQL SERVER 分组求和
需求: 实现方式: SELECT A1,SUM(A2*A3) FROM A GROUP BY A1
MySQL:MySQL和SQL Server的区别
导读:接下来的网上商城的项目,需要用到MySQL数据库了。这个对于我来说,是一个新接触的东西,按照惯例,在刚开始学习一个东西的时候,先从宏观上去了解它。本篇博客,先介绍SQL Server的基本内容,然后介绍MySQL的基本内容,最后介绍两者之间的区别。 一、SQL Server基本简介 1.1,概述 SQL Server 是Microsoft 公司推出的关系型数据库管理系统。具有使
sql server模糊查询、分组
一、系统函数 1。convert(类型[length] ,表达式[,样式]) 2.isnull(表达式,默认值) 字符函数:  len() 长度  ltrim()|rtrim()去除左右空格  right()|left()截取右边或左边字符  substring();按位置和长度截取 日期函数:  dateadd()  日期加操作  dateDiff()  两个日期差  getdate()  获取
SQL Server学习笔记【认识SQL Server查询及分组嵌套查询】
1.SQL 是一个标准 89 92 99三个版本SQL语言的前身是IBM公司的SEOUEL语言2.T-SQL 是微软在遵循SQL标准的基础上,有针对SQL Server的功能添加注意:以下查询均基于学生表student[表名]id  stunumber name age sex phone email[字段]SQL 查询    1.select 基本结构        select 查询什么,列筛...
SQL Server 分组排序
-- 创建表 Create table T1(GroupId int, Keys varchar(2));-- 准备数据 insert into T1 values(3, 'a'); insert into T1 values(3, 'b'); insert into T1 values(3, 'd'); insert into T1 values(4, 'a'); insert into T1 values(4, 'b'); insert into T1 values(5, 'a'); i
MySQL、SQL Server中字符串拼接
MySQL中,可以使用CONCAT函数进行字符串匹配,SQL Server中,可以直接使用加号"+"进行字符串拼接。另外,MySQL还提供了CONCAT_WS、GROUP_CONCAT函数,分别可以进行分隔符连接字符串及分组连接字符串。
SQL Server汇总数据之聚合函数与分组
主要用于对数据集的的数据进行汇总统计等操作,基本是聚合函数。 聚合的基本理念:不是返回所有指定的行,而是返回一行计算得到的值(前面指定的行 的某些数据的汇总)。它们汇总了原始数据集。 1、计算总数、平均值 2、统计分析 3、解决聚合问题 4、创建动态的交叉查询 一、简单聚合 在SQL查询的逻辑流程中,聚合函数是在From子句和Where子句之后执
SQL server 创建MYSQL的链接服务器
这两天需要从别人的mysql里读数据过来,由于在自动取数据过程中,要保存各类控制数据,这些数据还是存在我自己的SQLSERVER中比较方便,所以想来想去,决定用链接服务器。接下来把我建立链接服务器的经历跟各位分享一下: 整个过程共分为三大部分:准备过程、建立链接服务器、使用链接服务器示例 一、准备过程 需要准备的内容有:OLEDB、mysqlconnect
SQL Server访问MySql
使用环境:操作系统:window7数据库:SQL Server2005、MySql5.01、在安装了SQL Server的服务器上安装MySql的ODBC驱动:下载链接:http://dev.mysql.com/downloads/mirror.php?id=376346点过去之后会链接到以下的页面,不用登陆,直接点击下面的“No thanks,just start my download”就会弹出下载框。