首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >T-SQL查询,返回特定区域,并按该区域的前几个字符对所有结果进行分组

T-SQL查询,返回特定区域,并按该区域的前几个字符对所有结果进行分组
EN

Stack Overflow用户
提问于 2015-08-21 04:47:01
回答 2查看 202关注 0票数 1

我正在尝试用T-SQL编写一个查询,按区域返回特定结果,并按区域名称的前几个字符对这些结果进行分组。我还需要将所有结果分组,而不是像搜索的区域名称一样作为其他。

代码语言:javascript
复制
   Region             Total 
USA Servers West      100
USA Servers East      400
Canada Servers        120
Europe Servers         80
Asia Servers           70
Mexico Servers         50

我需要将美国服务器分组为1个地区,当我搜索美国和加拿大服务器时,返回它们的总数,但返回所有其他地区的总数。

代码语言:javascript
复制
   Region          Total
USA Servers         500
Canada Servers      120
Others              200

获得这些结果的最简单方法是什么?

EN

回答 2

Stack Overflow用户

发布于 2015-08-21 04:52:38

其中一种方法是使用case表达式:

代码语言:javascript
复制
SELECT   region, SUM(total) AS total
FROM     (SELECT CASE WHEN region LIKE 'USA Servers%' THEN 'USA Servers'
                      WHEN region LIKE 'Canada Servers%' THEN 'Canada Servers'
                      ELSE 'Others'
                 END AS region,
                 total
          FROM   servers) t
GROUP BY region
票数 4
EN

Stack Overflow用户

发布于 2015-08-21 04:52:50

代码语言:javascript
复制
select 'USA Servers',    sum(total) 
  from servers 
 where region like 'USA Servers%' 
union all
select 'Canada Servers', sum(total)
  from servers 
 where region like 'Canada Servers%'
union all
select 'Other Servers',  sum(total)
  from servers 
 where region not like 'USA Servers%'
   and region not like 'Canada Servers%'
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32128080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档