MSSQL中递归SQL查询语句实例说明-
一张表(ColumnTable)的结构如下图所示
当前需要实现的功能:通过Number的值为67来获取当前的节点ID、父节点ID
with znieyu as
(
select c.Id,c.FatherId,0 as lv1 from ColumnTable c where c.Number=67
union all
select c.Id,c.FatherId,lv1-1 from znieyu z
inner join ColumnTable c
on z.FatherId=c.Id
)
select znieyu.Id ,znieyu.FatherId,znieyu.lv1 as lv from znieyu
实现的效果:
满足条件67ID为6的递归-->6-->2(LV0)-->1(LV-1)-->0(LV-2)
满足条件67ID为8的递归-->8-->5(LV0)-->2(LV-1)-->1(LV-2)-->0(LV-3)
很简单的一个SQL递归,记录下来...
相关推荐
-
防SQL注入 生成参数化的通用分页查询语句
使用这种通用的存储过程进行分页查询,想要防SQL注入,只能对输入的参数进行过滤,例如将一个单引号"'"转换成两个单引号"''",但这种做法是不安全的,厉害的黑客可以通过编码的方式绕过单引号的过滤,要想有效防SQL注入,只有参数化查询才是最终的解决方案.但问题就出在这种通用分页存储过程是在存储过程内部进行SQL语句拼接,根本无法修改为参数化的查询语句,因此这种通用分页存储过程是不可取的.但是如果不用通用的分页存储过程,则意味着必须为每个具体的分页查询写一个分页存储过程
-
SQl 跨服务器查询语句
select * from OPENDATASOURCE( 'SQLOLEDB', 'Data Source=远程ip;User ID=sa;Password=密码' ).库名.dbo.表名 insert 本地库名..表名 select * from OPENDATASOURCE( 'SQLOLEDB', 'Data Source=远程ip;User ID=sa;Password=密码' ).库名.dbo.表名 或使用联结服务器: --创建linkServer exec sp_addlinked
-
SQL查询语句通配符与ACCESS模糊查询like的解决方法
ACCESS的通配符和SQL SERVER的通配符比较===================================================ACCESS库的通配符为:* 与任何个数的字符匹配? 与任何单个字母的字符匹配 SQL Server中的通配符为:% 与任何个数的字符匹配_ 与单个字符匹配正文我今天在写个页面的时候,也很郁闷,表中明明有记录,但在ASP里就是搜索不到,理论的sql语句如下:Select * FROM t_food Where t_food.name
-
基于SQL中的数据查询语句汇总
where条件表达式--统计函数 复制代码 代码如下: Select count(1) from student; --like模糊查询--统计班上姓张的人数 复制代码 代码如下: select count(*) from student where realName like '张%'; --统计班上张姓两个字的人数 复制代码 代码如下: select count(*) from student where realName like '张_'; --统计班上杭州籍的学生人数 复制代码 代码如
-
关于SQL Server查询语句的使用
一.查询第二个字母是t或者a的雇员的全部信息 复制代码 代码如下: select * from employees where firstname like '_[t,a]%' 注意:在sql中%表示字符串,所以不可像matlab一样用其注释,两个双斜线好像也不行,/**/可以,有网友说sql单行注释为-- 二.更改字段名 复制代码 代码如下: select '名字' = firstname ,'姓氏' = lastname from employees where firstname lik
-
基于mysql查询语句的使用详解
1> 查询数据表除了前三条以外的数据. 起初我想到的是这条语句 SELECT * FROM admin WHERE userid NOT IN (SELECT userid FROM admin ORDER BY userid LIMIT 3) ORDER BY userid DESC 但是运行的时候会报 This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery 这个的意思是表示子查询的时候不支持l
-
SQL Server SQL高级查询语句小结
Ø 基本常用查询 --select select * from student; --all 查询所有 select all sex from student; --distinct 过滤重复 select distinct sex from student; --count 统计 select count(*) from student; select count(sex) from student; select count(distinct sex) from student; --top
-
SQL查询语句精华使用简要第1/2页
一. 简单查询 简单的Transact-SQL查询只包括选择列表.FROM子句和Where子句.它们分别说明所查询列.查询的 表或视图.以及搜索条件等. 例如,下面的语句查询testtable表中姓名为"张三"的nickname字段和email字段. Select nickname,email FROM testtable Where name='张三' (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表.星号.表达式.变量(包括局部变 量和全局变
-
T-SQL 查询语句的执行顺序解析
(5)SELECT (5-2) DISTINCT(5-3)TOP(<top_specification>)(5-1) <select_list> (1)FROM (1-J) <left_table> <join_type> JOIN <right_table> on <on_predicate> (2)WHERE <where_predicate> (3)GROUP BY <group_by_specificatio
-
SQL 查询语句积累
2006-10-8表数据:tab1id name numA a 9A b 11B f 7B g 8所要结果:A b 11B g 8SQL 语句select * from tab1where (num in (select max(num) from tabl group by id) )解释说明,之所以要用子查询,目的是要取全部
随机推荐
- 进制转换算法原理(二进制 八进制 十进制 十六进制)
- spring boot中的properties参数配置详解
- ISAPI-REWRITE伪静态规则写法以及说明
- 利用java实现二维码和背景图的合并
- Freemarker如何生成树形导航菜单(递归)
- IIS+PHP+MySQL+Zend配置 (视频教程)
- 详解vue嵌套路由-params传递参数
- 安装和使用percona-toolkit来辅助操作MySQL的基本教程
- javascript利用初始化数据装配模版的实现代码
- Javascript setInterval的两种调用方法(实例讲解)
- PHP图片库imagemagick安装方法
- phpstorm编辑器乱码问题解决
- 如何利用JConsole观察分析Java程序的运行并进行排错调优
- Nodejs初级阶段之express
- springboot + swagger 实例代码
- jquery鼠标滑过提示title具体实现代码
- nginx与apache限制ip并发访问 限制ip连接的设置方法
- Java编程实现数组转成list及list转数组的方法
- Java并发编程之阻塞队列详解
- Android开发之对话框案例详解(五种对话框)