CTE 中字符串拼接
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 中字符串拼接的更多相关文章
- SQL中字符串拼接
1. 概述 在SQL语句中经常需要进行字符串拼接,以sqlserver,oracle,mysql三种数据库为例,因为这三种数据库具有代表性. sqlserver: select '123'+'456' ...
- Python中字符串拼接的三种方式
在Python中,我们经常会遇到字符串的拼接问题,在这里我总结了三种字符串的拼接方式: 1.使用加号(+)号进行拼接 加号(+)号拼接是我第一次学习Python常用的方法,我们只需要把我们要加 ...
- javascript中字符串拼接详解
字符串拼接是所有程序设计语言都需要的操作.当拼接结果较长时,如何保证效率就成为一个很重要的问题.本文介绍的是Javascript中的字符串拼接,希望对你有帮助,一起来看. 最近在研究<jav ...
- Python中字符串拼接的N种方法
python拼接字符串一般有以下几种方法: ①直接通过(+)操作符拼接 s = 'Hello'+' '+'World'+'!'print(s) 输出结果:Hello World! 使用这种方式进行字符 ...
- Java 8中字符串拼接新姿势:StringJoiner
介绍 StringJoiner是java.util包中的一个类,用于构造一个由分隔符分隔的字符序列(可选),并且可以从提供的前缀开始并以提供的后缀结尾.虽然这也可以在StringBuilder类的帮助 ...
- ABAP非Unicode系统中字符串拼接(CONCATENATE)时吃字符问题
系统是老R3,非Unicdoe系统,某些表字段是从外界系统过来的,由于接口设计的固定长度,外界系统传超长字符串过来后,就可能从最后一个中文字符中间截断,这问题到还没什么,只不过显示时最后一个字符显示成 ...
- ubuntu下仅仅获取网卡一的ip地址 && shell中字符串拼接
问题描述: ubuntu下仅仅获取网卡一的ip地址 问题背景: eth0,eth1,eth2……代表网卡一,网卡二,网卡三…… lo代表127.0.0.1,即localhost | 问题描述: 已知字 ...
- js中字符串拼接html
1.使用转义字符 ": " " "+userName+" " " 效果:"userName" 2. 单引号中拼 ...
- mysql 中字符串拼接,查询sql语句总结
DELIMITER $$ USE `ld_wpfmgl_sys`$$ DROP PROCEDURE IF EXISTS `code_query`$$ CREATE DEFINER=`root`@`%` ...
随机推荐
- jdk1.8新特性之lambda表达式
lambda表达式其实就是指一个匿名函数,应用最广泛的就是匿名内部类的简化.在jdk1.8之前,我们定义一个匿名内部类可能需要写一大坨代码,现在有了lambda之后,可以写的很简洁了.但不是说lamb ...
- 在Google的GKE上创建支持Internal Load Balancer的Service
在Google的Kubernetes Engine上发布service,可以采用除On-Promise相同的Cluster IP和NodePort两种方式外,还可以创建LoadBalaner的Serv ...
- Unix网络编程 3.9 readline函数
其实看APUE时就想试着写些简单的stdio函数了,但是一直没实践,看到这里时发现书上写得不完整,便敲代码试了下. 第1个readline速度非常慢原因在于每次读取字符都执行了系统调用read(),而 ...
- php 实现四种排序两种查找
function bubbleSort($arr){ $len = count($arr); if($len<=1) { return $arr; } for ($i=0;$i<$len; ...
- 黄聪:使用Add-on SDK开发火狐扩展
2014年3月7号更新:火狐已经关闭Add-on SDK服务啦!我也转用360急速浏览器来开发浏览器插件了. 如果精通JS.HTML.CSS开发的朋友,直接看这个教程估计就能懂了 ---------- ...
- poj 3977 Subset(折半枚举+二进制枚举+二分)
Subset Time Limit: 30000MS Memory Limit: 65536K Total Submissions: 5721 Accepted: 1083 Descripti ...
- 操作系统-百科: UNIX
ylbtech-操作系统-百科: UNIX UNIX操作系统(尤尼斯),是一个强大的多用户.多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统,最早由KenThompson.De ...
- mysql 存储过程简单学习
转载自:http://blog.chinaunix.net/uid-23302288-id-3785111.html ■存储过程Stored Procedure 存储过程就是保存一系列SQL命令的集合 ...
- Redis在.NET环境下实践篇(一)
redis简介 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,和Memcached类似,它支持存储的value类型相对更多,包括st ...
- python json.dumps() 中文乱码问题
python json.dumps() 中文乱码问题 python 输出一串中文字符,在控制台上(控制台使用UTF-8编码)通过print 可以正常显示,但是写入到文件中之后,中文字符都输出成as ...