SQL SERVER 下:1、递归查询父分类下的各个子分类。 2、查询每个商品分类中最贵的前两个商品SQL
1、递归查询父分类下的各个子分类。表设计:
SQL:
--CTE 语句(适用于MSSQL2005以后版本)
with cte_testNavi(Id,Name,Pid )
as
(
--这是查询语句
SELECT Id,Name,Pid FROM Navi
WHERE Name='汽车'
union all
--这是需要递归的部分,CTE 自身调用完成循环递归查找
SELECT a.Id,a.Name,a.Pid FROM Navi a
INNER JOIN
cte_testNavi b
ON
(a.Pid=b.Id)
)
select * from cte_testNavi
2、查询每个商品分类中最贵的前两个商品SQL
表设计:
SQL:
--要求根据商品分类取出每个商品下最贵的前两个物品
-- OVER( partition by c.ClassID order by i.Price DESC)over 开窗函数可以避免group by带来的不包含在子列的情况,
--但是开窗函数会返回多行结果,要根据使用情况去判定,比如这里我要按照ClassID商品类别ID进行分组
--RANK函数微软的定义是:返回结果集分区内每行的排名。一行的排名是一个加上所涉及行之前的行列数。
--比如这里我按Price价格去排序,取出每个分类下最贵的商品从上到下排序
SELECT * FROM
(
SELECT i.Price,i.CommodityName,c.ClassName,RANK() OVER( partition by c.ClassID order by i.Price DESC) rank2
FROM CommodityInfo i
INNER JOIN CommodityClass c
ON i.CommodityClass=c.ClassID
)R
WHERE rank2<=2;
SQL SERVER 下:1、递归查询父分类下的各个子分类。 2、查询每个商品分类中最贵的前两个商品SQL的更多相关文章
- C#面试题(转载) SQL Server 数据库基础笔记分享(下) SQL Server 数据库基础笔记分享(上) Asp.Net MVC4中的全局过滤器 C#语法——泛型的多种应用
C#面试题(转载) 原文地址:100道C#面试题(.net开发人员必备) https://blog.csdn.net/u013519551/article/details/51220841 1. . ...
- SSRS (SQL Server Report Service) 在IE9, IE10下显示不全的解决办法
原文:SSRS (SQL Server Report Service) 在IE9, IE10下显示不全的解决办法 在做项目的过程中遇到SSRS与IE9, IE10不兼容的情况,具体表现为报表页面在IE ...
- 推荐SQL Server Management Studio以及Visual Studio下的免费的插件 ApexSQL Complete
SQL Server 并没有代码格式化的工具,对于处理他人编写的长SQL需要手工的格式化是一件麻烦的事情. 推荐SQL Server Management Studio以及Visual Studio下 ...
- SQL server 创建 修改表格 及表格基本增删改查 及 高级查询 及 (数学、字符串、日期时间)函数[转]
SQL server 创建 修改表格 及表格基本增删改查 及 高级查询 及 (数学.字符串.日期时间)函数 --创建表格 create table aa ( UserName varchar(50 ...
- Sql Server 函数的操作实例!(执行多条语句,返回Select查询后的临时表)
Sql Server 函数的操作实例!(执行多条语句,返回Select查询后的临时表) SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ==== ...
- Sql Server 函数的操作实例!(返回一条Select语句查询后的临时表)
Sql Server 函数的操作实例!(返回一条Select语句查询后的临时表) SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE FUN ...
- SQL Server(解决问题)已成功与服务器建立连接,但是在登录过程中发生错误。(provider: Shared Memory Provider, error:0 - 管道的另一端上无任何进程。
http://blog.csdn.net/github_35160620/article/details/52676416 如果你在使用新创建的 SQL Server 用户名和密码 对数据库进行连接的 ...
- excel导入sql server 文本被截断,或者一个或多个字符在目标代码页中没有匹配项 错误处理
excel导入sql server 文本被截断,或者一个或多个字符在目标代码页中没有匹配项 错误处理方法: 方案1:修改注册表 出现文本被截断的原因是SQL Server的导入导出为了确定数据表的字段 ...
- SQL Server Reporting Services本机模式下的权限管理
SQL Server Reporting Services在安装配置后,缺省只给BUILTIN\Administrators用户组(实际上只有本机的Administrator用户)提供管理权限.所以所 ...
随机推荐
- Go语言基础之4--流程控制
一.if else语句 1.1 基本语法1 语法1: if condition { //do something } 语法2: if condition { //do something } else ...
- SQL 十分位
-- 十分位,这个算法不是很准确 select family_agreement_cnt -- 字段 ,dt -- 分区 ,rn -- 排序 ,cnt -- 总行数 ,percent2 -- 分位值 ...
- input 单选按钮radio 取消选中
//需要先引入JQ.js <input name="rdo" value="AA" type="radio" tag="0& ...
- git使用笔记-提高篇
一.分支.合并 1.合并一个特定提交 a specific commit git cherry-pick commit-id 把commit-id代表的本次提交合并到当前分支,如果有冲突需要解决后,提 ...
- (转)DNS解析过程详解
DNS解析过程详解 原文:http://blog.csdn.net/crazw/article/details/8986504 先说一下DNS的几个基本概念: 一. 根域 就是所谓的“.”,其实我们的 ...
- (转)总结Linux的chattr与lsattr命令详解
PS:有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了.chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,不过现在生产绝大部分跑的li ...
- 在PHP中使用全局变量的几种方法
简介 即使开发一个新的大型PHP程序,你也不可避免的要使用到全局数据,因为有些数据是需要用到你的代码的不同部分的.一些常见的全局数据有:程序设定类.数据库连接类.用户资料等等.有很多方法能够使这些数据 ...
- 解决dede图集上传图片时跳出302错误
错误.以前从来没遇到过,想了半天也没想出是哪里出了错误,郁闷~ 没辙,去论坛搜了一下,还真有同命相连的兄弟,同样爆出这个错误.往下拉了几楼,还是找到了答案. 解决办法是: 在include/userl ...
- plsql窗口列表保持
使用plsql窗口列表保持方法如下: 1.工具——首选项——用户界面——自动保存桌面 选一下此项就保存你当前的窗口布局了,下次启动就不用再设置了. 英语版自己对照.
- Javascript 学习 Boolean
构造函数 new Boolean(value) //构造函数 Boolean(value) //转换函数 参数 value 由布尔对象存放的值或者要转换成布尔值的值 返回值 当作为一个构造函数(带有运 ...