1>cte语法

1.1>基础语句和递归语句中必须有字段

1.2>最后只能跟一条查询语句

1.3>字符串拼接,要将拼接的字段转成字符串类型,cast(fieldName as nvarchar(max))

with cte[(field1,field2,...)]
as
(
--基础语句,必须有字段
select field1,field2,... from tableName
union all
--递归语句,必须有字段
select field1,field2,... from tableName a,cte b where a.fieldName=b.fieldName
)
select * from cte;--只能跟一条查询语句

  

2>cte 实例,添加一些拼接的字符串

with dept
as
(
select DEPTNAME as DEPTNAME,DEPTID,PDEPTID,cast(DEPTNAME as nvarchar(max)) as name from DEPARTMENT where DEPARTMENT.DEPTNAME='信息中心'
union all
select a.DEPTNAME,a.DEPTID,a.PDEPTID,cast(a.DEPTNAME+'\'+b.name as nvarchar(max)) as name from DEPARTMENT a inner join dept b on a.DEPTID=b.PDEPTID
)
select * from dept where DEPTNAME='信息中心';

返回路径

with dept
as
(
select DEPTNAME as DEPTNAME,DEPTID,PDEPTID,cast(DEPTNAME as nvarchar(max)) as namepath,0 as pathlevel from DEPARTMENT where DEPARTMENT.DEPTID='121'
union all
select a.DEPTNAME,a.DEPTID,a.PDEPTID,cast(a.DEPTNAME+'\'+b.namepath as nvarchar(max)) as namepath,b.pathlevel+1 as pathlevel from DEPARTMENT a inner join dept b on a.DEPTID=b.PDEPTID
)
select namepath from dept where pathlevel=(select max(pathlevel) from dept);

  程序员的基础教程:菜鸟程序员

CTE 中字符串拼接的更多相关文章

  1. SQL中字符串拼接

    1. 概述 在SQL语句中经常需要进行字符串拼接,以sqlserver,oracle,mysql三种数据库为例,因为这三种数据库具有代表性. sqlserver: select '123'+'456' ...

  2. Python中字符串拼接的三种方式

    在Python中,我们经常会遇到字符串的拼接问题,在这里我总结了三种字符串的拼接方式:     1.使用加号(+)号进行拼接 加号(+)号拼接是我第一次学习Python常用的方法,我们只需要把我们要加 ...

  3. javascript中字符串拼接详解

    字符串拼接是所有程序设计语言都需要的操作.当拼接结果较长时,如何保证效率就成为一个很重要的问题.本文介绍的是Javascript中的字符串拼接,希望对你有帮助,一起来看.   最近在研究<jav ...

  4. Python中字符串拼接的N种方法

    python拼接字符串一般有以下几种方法: ①直接通过(+)操作符拼接 s = 'Hello'+' '+'World'+'!'print(s) 输出结果:Hello World! 使用这种方式进行字符 ...

  5. Java 8中字符串拼接新姿势:StringJoiner

    介绍 StringJoiner是java.util包中的一个类,用于构造一个由分隔符分隔的字符序列(可选),并且可以从提供的前缀开始并以提供的后缀结尾.虽然这也可以在StringBuilder类的帮助 ...

  6. ABAP非Unicode系统中字符串拼接(CONCATENATE)时吃字符问题

    系统是老R3,非Unicdoe系统,某些表字段是从外界系统过来的,由于接口设计的固定长度,外界系统传超长字符串过来后,就可能从最后一个中文字符中间截断,这问题到还没什么,只不过显示时最后一个字符显示成 ...

  7. ubuntu下仅仅获取网卡一的ip地址 && shell中字符串拼接

    问题描述: ubuntu下仅仅获取网卡一的ip地址 问题背景: eth0,eth1,eth2……代表网卡一,网卡二,网卡三…… lo代表127.0.0.1,即localhost | 问题描述: 已知字 ...

  8. js中字符串拼接html

    1.使用转义字符 ": " " "+userName+" " " 效果:"userName" 2. 单引号中拼 ...

  9. mysql 中字符串拼接,查询sql语句总结

    DELIMITER $$ USE `ld_wpfmgl_sys`$$ DROP PROCEDURE IF EXISTS `code_query`$$ CREATE DEFINER=`root`@`%` ...

随机推荐

  1. ( 转)mappingResource属性和mappingDirectoryLocations属性的使用

    在Spring的applicationContext.xml中配置映射文件,通常是在这个Bean实例中进行的,若配置的映射文件较少时,可以用sessionFactory的所属类LocalSession ...

  2. 初识php,开发环境的配置

    PHP开发环境配置和第一个PHP程序(phpStudy+PhpStorm) 第一步 下载phpStudy 首先,到phpStudy官网上下载最新的phpStudy版本. 第二步 安装phpStudy ...

  3. Linux 准确查找结构体定义位置

    例如:查找文件操作结构体 struct file_operations, 使用转移符 "\" $ grep struct\ file_operations\ { kernel/in ...

  4. JAVA-Unit05: 视图、序列、索引 、 约束

    Unit05: 视图.序列.索引 . 约束 视图 数据库对象之一 视图在SQL语句中体现的角色与表相同, 但它并非一张真实存在的表,它对应的 是一个查询语句的结果集. 创建一个查看10号部门员工信息的 ...

  5. c#通过app.manifest使程序 右键 以管理员身份运行

    c#通过app.manifest使程序以管理员身份运行 时间:2013-06-27 22:47来源:网络收集+本站整理 作者:jtydl 点击: 1175 次 微软在Windows Vista开始引入 ...

  6. A Complete Web Video Solution

    A Complete Web Video Solution FLASH . HTML5 . JAVASCRIPT API Support Embed videos from youtube, Vime ...

  7. 写java代码有感。。。构造方法最好带着,

    (一) 小结:具体我最大的担心,害怕就是方法调用的时候,new对象之后,赋值,是在new后面的括号里实现,还是在 对象.方法名()这样的.当然带参数的构造方法,调用时本身就直接调用,普通方法,选后者. ...

  8. MySQL重启端口被占用处理

    1,查看日志的ERROR 2018-05-23T01:26:59.230382Z 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not set. 201 ...

  9. 【UVA】12100 Printer Queue(STL队列&优先队列)

    题目 题目     分析 练习STL     代码 #include <bits/stdc++.h> using namespace std; int main() { int t; sc ...

  10. 【BZOJ】1008: [HNOI2008]越狱(组合数学)

    题目 题目描述 监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱 输入输出格式 ...