sql with as 语句使用

WITH ac AS
 (
     --通过id查询父类信息
     SELECT s_ParentID FROM dbo.MYWHERE S_id=109
     UNION ALL
     --通过父类id找出信息(此处是通过父类id找出父类的父类)
     SELECT ob.s_ParentID FROM ac INNER JOIN dbo.MYob ON ob.S_id=ac.s_ParentID
 )
 --递归完成 读取集合中信息
 SELECT * FROM dbo.MY WHERE S_id IN(SELECT * FROM ac) AND s_SonCount>0

--表结构

/****** Object:  Table [dbo].[MY]    Script Date: 10/10/2014 16:07:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[MY](
 [S_id] [int] IDENTITY(100,1) NOT NULL,
 [s_Syb] [int] NOT NULL,
 [s_FullID] [varchar](50) NOT NULL,
 [s_ParentID] [int] NOT NULL,
 [s_SonALL] [int] NOT NULL,
 [s_SonCount] [int] NOT NULL,
 [orgType] [int] NOT NULL,
 [IsUsePH] [bit] NOT NULL,
 [Org_Code] [varchar](50) NULL,
 [Org_Name] [varchar](50) NULL,
 [Org_zjCode] [varchar](50) NULL,
 [Org_Phone] [varchar](50) NULL,
 [Org_Email] [varchar](50) NULL,
 [Org_Address] [varchar](255) NULL,
 [Org_Remark] [varchar](255) NULL,
 [s_checkEdit] [timestamp] NOT NULL,
 CONSTRAINT [PK_Table_ID] PRIMARY KEY NONCLUSTERED
(
 [S_id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
SET IDENTITY_INSERT [dbo].[MY] ON
INSERT [dbo].[MY] ([S_id], [s_Syb], [s_FullID], [s_ParentID], [s_SonALL], [s_SonCount], [orgType], [IsUsePH], [Org_Code], [Org_Name], [Org_zjCode], [Org_Phone], [Org_Email], [Org_Address], [Org_Remark]) VALUES (1, 0, N‘00000‘, 0, 2, 2, 0, 0, N‘0‘, N‘所有机构‘, NULL, NULL, NULL, NULL, NULL)
INSERT [dbo].[MY] ([S_id], [s_Syb], [s_FullID], [s_ParentID], [s_SonALL], [s_SonCount], [orgType], [IsUsePH], [Org_Code], [Org_Name], [Org_zjCode], [Org_Phone], [Org_Email], [Org_Address], [Org_Remark]) VALUES (2, 0, N‘0000000001‘, 1, 7, 7, 1, 0, N‘001‘, N‘内部机构‘, NULL, NULL, NULL, NULL, NULL)
INSERT [dbo].[MY] ([S_id], [s_Syb], [s_FullID], [s_ParentID], [s_SonALL], [s_SonCount], [orgType], [IsUsePH], [Org_Code], [Org_Name], [Org_zjCode], [Org_Phone], [Org_Email], [Org_Address], [Org_Remark]) VALUES (3, 0, N‘00000000010000600001‘, 110, 0, 0, 1, 0, N‘001001‘, N‘总公司‘, NULL, NULL, NULL, NULL, NULL)
INSERT [dbo].[MY] ([S_id], [s_Syb], [s_FullID], [s_ParentID], [s_SonALL], [s_SonCount], [orgType], [IsUsePH], [Org_Code], [Org_Name], [Org_zjCode], [Org_Phone], [Org_Email], [Org_Address], [Org_Remark]) VALUES (4, 0, N‘0000000002‘, 1, 14, 14, 2, 0, N‘001003‘, N‘加盟机构‘, NULL, NULL, NULL, NULL, NULL)
INSERT [dbo].[MY] ([S_id], [s_Syb], [s_FullID], [s_ParentID], [s_SonALL], [s_SonCount], [orgType], [IsUsePH], [Org_Code], [Org_Name], [Org_zjCode], [Org_Phone], [Org_Email], [Org_Address], [Org_Remark]) VALUES (108, 1, N‘00000000010000800004‘, 126, 0, 0, 1, 1, N‘122121‘, N‘122121‘, N‘122121‘, NULL, NULL, NULL, NULL)
INSERT [dbo].[MY] ([S_id], [s_Syb], [s_FullID], [s_ParentID], [s_SonALL], [s_SonCount], [orgType], [IsUsePH], [Org_Code], [Org_Name], [Org_zjCode], [Org_Phone], [Org_Email], [Org_Address], [Org_Remark]) VALUES (109, 1, N‘00000000010000800005‘, 126, 0, 0, 1, 1, N‘11‘, N‘11‘, N‘1231231‘, N‘123123123‘, N‘123123‘, NULL, NULL)
INSERT [dbo].[MY] ([S_id], [s_Syb], [s_FullID], [s_ParentID], [s_SonALL], [s_SonCount], [orgType], [IsUsePH], [Org_Code], [Org_Name], [Org_zjCode], [Org_Phone], [Org_Email], [Org_Address], [Org_Remark]) VALUES (110, 1, N‘000000000100006‘, 2, 0, 2, 1, 0, N‘ck01‘, N‘ck01‘, NULL, NULL, NULL, NULL, NULL)
INSERT [dbo].[MY] ([S_id], [s_Syb], [s_FullID], [s_ParentID], [s_SonALL], [s_SonCount], [orgType], [IsUsePH], [Org_Code], [Org_Name], [Org_zjCode], [Org_Phone], [Org_Email], [Org_Address], [Org_Remark]) VALUES (111, -1, N‘000000000200001‘, 4, 0, 0, 2, 1, N‘WB01‘, N‘WB01‘, N‘wb01‘, N‘11‘, N‘11‘, N‘11‘, N‘11‘)
INSERT [dbo].[MY] ([S_id], [s_Syb], [s_FullID], [s_ParentID], [s_SonALL], [s_SonCount], [orgType], [IsUsePH], [Org_Code], [Org_Name], [Org_zjCode], [Org_Phone], [Org_Email], [Org_Address], [Org_Remark]) VALUES (112, 1, N‘000000000200002‘, 4, 0, 1, 2, 0, N‘jm012‘, N‘jm012‘, NULL, NULL, NULL, NULL, NULL)
INSERT [dbo].[MY] ([S_id], [s_Syb], [s_FullID], [s_ParentID], [s_SonALL], [s_SonCount], [orgType], [IsUsePH], [Org_Code], [Org_Name], [Org_zjCode], [Org_Phone], [Org_Email], [Org_Address], [Org_Remark]) VALUES (113, -1, N‘000000000200003‘, 4, 0, 0, 2, 1, N‘1112232‘, N‘11232‘, N‘11232‘, N‘11232‘, N‘11232‘, N‘2323‘, N‘11232‘)
INSERT [dbo].[MY] ([S_id], [s_Syb], [s_FullID], [s_ParentID], [s_SonALL], [s_SonCount], [orgType], [IsUsePH], [Org_Code], [Org_Name], [Org_zjCode], [Org_Phone], [Org_Email], [Org_Address], [Org_Remark]) VALUES (114, -1, N‘000000000100007‘, 2, 0, 0, 1, 1, N‘12121‘, N‘1212121‘, N‘12121‘, N‘12121‘, N‘12121‘, N‘2121‘, N‘1212‘)
INSERT [dbo].[MY] ([S_id], [s_Syb], [s_FullID], [s_ParentID], [s_SonALL], [s_SonCount], [orgType], [IsUsePH], [Org_Code], [Org_Name], [Org_zjCode], [Org_Phone], [Org_Email], [Org_Address], [Org_Remark]) VALUES (115, -1, N‘000000000200004‘, 4, 0, 0, 2, 1, N‘23423423‘, N‘asdfasdfsadf‘, N‘asdfasdfsadf‘, N‘adfasdf‘, N‘adf‘, N‘asdfsadf‘, N‘af‘)
INSERT [dbo].[MY] ([S_id], [s_Syb], [s_FullID], [s_ParentID], [s_SonALL], [s_SonCount], [orgType], [IsUsePH], [Org_Code], [Org_Name], [Org_zjCode], [Org_Phone], [Org_Email], [Org_Address], [Org_Remark]) VALUES (126, 1, N‘000000000100008‘, 2, 0, 5, 1, 0, N‘qq‘, N‘qqq‘, NULL, NULL, NULL, NULL, NULL)
INSERT [dbo].[MY] ([S_id], [s_Syb], [s_FullID], [s_ParentID], [s_SonALL], [s_SonCount], [orgType], [IsUsePH], [Org_Code], [Org_Name], [Org_zjCode], [Org_Phone], [Org_Email], [Org_Address], [Org_Remark]) VALUES (127, -1, N‘000000000100009‘, 2, 0, 0, 1, 0, N‘qqqqq‘, N‘qqqqq‘, N‘qqqqq‘, NULL, NULL, NULL, NULL)
INSERT [dbo].[MY] ([S_id], [s_Syb], [s_FullID], [s_ParentID], [s_SonALL], [s_SonCount], [orgType], [IsUsePH], [Org_Code], [Org_Name], [Org_zjCode], [Org_Phone], [Org_Email], [Org_Address], [Org_Remark]) VALUES (132, -1, N‘000000000200006‘, 4, 0, 0, 4, 1, N‘adsfasd45345‘, N‘asdfadfsasdf2452345245‘, N‘asdfadfsasdf2452345245‘, N‘afdadf‘, N‘asdfasdf‘, N‘afdafds‘, N‘asdfadsf‘)
INSERT [dbo].[MY] ([S_id], [s_Syb], [s_FullID], [s_ParentID], [s_SonALL], [s_SonCount], [orgType], [IsUsePH], [Org_Code], [Org_Name], [Org_zjCode], [Org_Phone], [Org_Email], [Org_Address], [Org_Remark]) VALUES (133, 1, N‘000000000100010‘, 2, 0, 0, 1, 0, N‘11122233‘, N‘11122233‘, N‘11122233‘, N‘11122233‘, N‘11122233‘, N‘11122233‘, N‘11122233‘)
INSERT [dbo].[MY] ([S_id], [s_Syb], [s_FullID], [s_ParentID], [s_SonALL], [s_SonCount], [orgType], [IsUsePH], [Org_Code], [Org_Name], [Org_zjCode], [Org_Phone], [Org_Email], [Org_Address], [Org_Remark]) VALUES (134, 1, N‘000000000100011‘, 2, 0, 0, 1, 0, N‘1112adfasdfa2233‘, N‘1112adfasdf2233‘, N‘11122233‘, N‘11122233‘, N‘11122233‘, N‘11122233‘, N‘11122233‘)
INSERT [dbo].[MY] ([S_id], [s_Syb], [s_FullID], [s_ParentID], [s_SonALL], [s_SonCount], [orgType], [IsUsePH], [Org_Code], [Org_Name], [Org_zjCode], [Org_Phone], [Org_Email], [Org_Address], [Org_Remark]) VALUES (135, -1, N‘000000000200007‘, 4, 0, 0, 2, 1, N‘1112adfasdfa2233sss‘, N‘1112assssdfasdf2233‘, N‘11122233‘, N‘11122233‘, N‘11122233‘, N‘11122233‘, N‘11122233‘)
INSERT [dbo].[MY] ([S_id], [s_Syb], [s_FullID], [s_ParentID], [s_SonALL], [s_SonCount], [orgType], [IsUsePH], [Org_Code], [Org_Name], [Org_zjCode], [Org_Phone], [Org_Email], [Org_Address], [Org_Remark]) VALUES (136, -1, N‘000000000200008‘, 4, 0, 0, 2, 1, N‘1112adfasdfa2233sss‘, N‘1112assssdfasdf2233‘, N‘11122233‘, N‘11122233‘, N‘11122233‘, N‘11122233‘, N‘11122233‘)
INSERT [dbo].[MY] ([S_id], [s_Syb], [s_FullID], [s_ParentID], [s_SonALL], [s_SonCount], [orgType], [IsUsePH], [Org_Code], [Org_Name], [Org_zjCode], [Org_Phone], [Org_Email], [Org_Address], [Org_Remark]) VALUES (138, 1, N‘000000000100012‘, 2, 0, 0, 1, 1, N‘111wqwqwq‘, N‘111‘, N‘11111‘, N‘11‘, N‘11‘, N‘11‘, N‘11‘)
INSERT [dbo].[MY] ([S_id], [s_Syb], [s_FullID], [s_ParentID], [s_SonALL], [s_SonCount], [orgType], [IsUsePH], [Org_Code], [Org_Name], [Org_zjCode], [Org_Phone], [Org_Email], [Org_Address], [Org_Remark]) VALUES (139, 1, N‘000000000200010‘, 4, 0, 0, 4, 0, N‘23423‘, N‘2342342‘, N‘2342342‘, N‘234‘, NULL, NULL, NULL)
INSERT [dbo].[MY] ([S_id], [s_Syb], [s_FullID], [s_ParentID], [s_SonALL], [s_SonCount], [orgType], [IsUsePH], [Org_Code], [Org_Name], [Org_zjCode], [Org_Phone], [Org_Email], [Org_Address], [Org_Remark]) VALUES (140, 1, N‘000000000200011‘, 4, 0, 0, 4, 0, N‘adfsadf‘, N‘adfasfd‘, N‘adfasfd‘, N‘sadfasdf‘, NULL, NULL, NULL)
INSERT [dbo].[MY] ([S_id], [s_Syb], [s_FullID], [s_ParentID], [s_SonALL], [s_SonCount], [orgType], [IsUsePH], [Org_Code], [Org_Name], [Org_zjCode], [Org_Phone], [Org_Email], [Org_Address], [Org_Remark]) VALUES (106, 1, N‘00000000010000800007‘, 126, 0, 0, 1, 1, N‘SSS‘, N‘SSS‘, N‘sss‘, NULL, N‘SS‘, NULL, NULL)
INSERT [dbo].[MY] ([S_id], [s_Syb], [s_FullID], [s_ParentID], [s_SonALL], [s_SonCount], [orgType], [IsUsePH], [Org_Code], [Org_Name], [Org_zjCode], [Org_Phone], [Org_Email], [Org_Address], [Org_Remark]) VALUES (107, 1, N‘00000000010000800006‘, 126, 0, 0, 1, 1, N‘11111‘, N‘111111‘, N‘111111‘, N‘123‘, N‘123‘, NULL, NULL)
INSERT [dbo].[MY] ([S_id], [s_Syb], [s_FullID], [s_ParentID], [s_SonALL], [s_SonCount], [orgType], [IsUsePH], [Org_Code], [Org_Name], [Org_zjCode], [Org_Phone], [Org_Email], [Org_Address], [Org_Remark]) VALUES (131, -1, N‘000000000200005‘, 4, 0, 0, 4, 1, N‘adsfasd‘, N‘asdfadfsasdf‘, N‘asdfadfsasdf‘, N‘afdadf‘, N‘asdfasdf‘, N‘afdafds‘, N‘asdfadsf‘)
INSERT [dbo].[MY] ([S_id], [s_Syb], [s_FullID], [s_ParentID], [s_SonALL], [s_SonCount], [orgType], [IsUsePH], [Org_Code], [Org_Name], [Org_zjCode], [Org_Phone], [Org_Email], [Org_Address], [Org_Remark]) VALUES (137, 1, N‘000000000200009‘, 4, 0, 0, 2, 1, N‘1112adfasdfa2233sss‘, N‘1112assssdfasdf2233‘, N‘11122233‘, N‘11122233‘, N‘11122233‘, N‘11122233‘, N‘11122233‘)
SET IDENTITY_INSERT [dbo].[MY] OFF
/****** Object:  Default [DF_OrgBase_s_SonALL]    Script Date: 10/10/2014 16:07:36 ******/
ALTER TABLE [dbo].[MY] ADD  CONSTRAINT [DF_MY_s_SonALL]  DEFAULT ((0)) FOR [s_SonALL]
GO

时间: 2024-11-07 05:04:59

sql with as 语句使用的相关文章

SQL 数据库T-SQL语句查询

         SQL 数据库T-SQL语句查询 附加数据库的数据文件 查询表中种类是水果的出厂日期在201-04-01之后的 查询所有种类的总成本 以倒序的方式查询表中水果的成本 查询种类是蔬菜的并且价格在1-5之间 将product表中的名称,种类,出厂日期的数据保存在另一个名为product_new的表中,并查看 在products表和sales表中查询产品的名称.种类.成本.销售地点和销售价格. 在products表和sales表中查询销往海南的产品名称.种类.成本和销售价格. 查询年

Oracle SQL语言DML语句与事务_超越OCP精通Oracle视频教程培训28

Oracle SQL语言DML语句与事务_超越OCP精通Oracle视频教程培训28 本课程介绍: Oracle视频教程,风哥本套oracle教程培训是<<Oracle数据库SQL语言实战培训教程>>的第3/5套:Oracle SQL语言DML语句与事务.主要学习Oracle数据库SQL语句INSERT命令,学习使用UPDATE命令,学习使用DELETE命令,学习创建PL/SQL对象,事务概念与控制,锁的检测和锁争用,了解撤销数据. Oracle SQL语言DML语句与事务管理,课

python 3 mysql sql逻辑查询语句执行顺序

python 3 mysql sql逻辑查询语句执行顺序 一 .SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition> GROUP BY <group_by_list> HAVING <havin

SQL Server UPDATE语句的用法详解

SQL Server UPDATE语句用于更新数据,下面就为您详细介绍SQL Server UPDATE语句语法方面的知识,希望可以让您对SQL Server UPDATE语句有更多的了解. 现实应用中数据库中的数据改动是免不了的.通常,几乎所有的用户数据库中的大部分数据都要进行某种程度的修改.在SQL Server数据库中要想修改数据库记录,就需要用UPDATE语句,UPDATE语句就是为了改变数据库中的现存数据而存在的.这条语句虽然有一些复杂的选项,但确实是最容易学习的语句之一.这是因为在大

自己整理的常用SQL Server 2005 语句、

--创建数据库 create database 数据库 go --打开数据库 use 数据库 --删除数据库 drop database 数据库 Go --创建数据表 create table 数据表 ( 列名1  数据类型1  限定条件(是否是主外键.是否为空), 列名2  数据类型2  限定条件(是否是主外键.是否为空) )go --删除数据表 drop table 数据表 --插入数据 --插入单行数据 insert  into 表名 [(列名1,列名2 )]  values  (‘数据1

如何判断一条sql(update,delete)语句是否执行成功

如何判断一条sql(update,delete)语句是否执行成功 catch  (SQLException    e)  {  }  catch不到错误应该就成功了.   ===================================================================== Statement对象提供了三种执行sql语句的方法.  1.ResultSet  executeQuery(String  sql)       执行查询语句,如ResultSet  r

SQL SELECT INTO 语句

SQL SELECT INTO 语句可用于创建表的备份复件. SELECT INTO 语句 SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中. SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档. SQL SELECT INTO 语法 您可以把所有的列插入新表: SELECT * INTO new_table_name [IN externaldatabase] FROM old_tablename 或者只把希望的列插入新表: SELECT colu

SQL SELECT DISTINCT 语句

SQL SELECT DISTINCT 语句 在表中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值. 关键词 DISTINCT 用于返回唯一不同的值. 语法: SELECT DISTINCT 列名称 FROM 表名称 使用 DISTINCT 关键词 如果要从 "Company" 列中选取所有的值,我们需要使用 SELECT 语句: SELECT Company FROM Orders "Orders"表: Company

SQL数据库基本语句

SQL特点--> 1)综合统一.SQL是集数据定义.数据操作和数据控制于一体,语言峰峰统一,可独立完成数据库生命周期的所有活动. 2)高度非过程化.SQL语言是高度非过程化语言,当进行数据操作时只需要指出“做什么”,无需指出“怎么做”,存储路径对用户来说是透明的,提高了数据的独立性. 3)面向集合的操作方式.SQL语言采用面向集合的操作方式,其操作队形.查找结果可以是元组的集合. 4)两种使用方式.第一种(自含式语言):用户可以在终端键盘输入SQL命令,对数据可进行操作:第二种(嵌入式语言):将

SQL SERVER SELECT语句中加锁选项的详细说明 [转]

SQL Server提供了强大而完备的锁机制来帮助实现数据库系统的并发性和高性能.用户既能使用SQL Server的缺省设置也可以在select 语句中使用“加锁选项”来实现预期的效果. 本文介绍了SELECT语句中的各项“加锁选项”以及相应的功能说明. 功能说明: NOLOCK(不加锁) 此选项被选中时,SQL Server 在读取或修改数据时不加任何锁. 在这种情况下,用户有可能读取到未完成事务(Uncommited Transaction)或回滚(Roll Back)中的数据, 即所谓的“