惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
Martin Fowler
Martin Fowler
The GitHub Blog
The GitHub Blog
B
Blog RSS Feed
U
Unit 42
阮一峰的网络日志
阮一峰的网络日志
量子位
GbyAI
GbyAI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
云风的 BLOG
云风的 BLOG
小众软件
小众软件
博客园 - 三生石上(FineUI控件)
L
LangChain Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园_首页
IT之家
IT之家
V
Visual Studio Blog
Y
Y Combinator Blog
Blog — PlanetScale
Blog — PlanetScale
宝玉的分享
宝玉的分享
Apple Machine Learning Research
Apple Machine Learning Research
I
InfoQ
D
Docker
V
V2EX

博客园 - 花边软件,花边管理软件,服装(鞋)管理软件

让TextArea支持MaxLength的自定义文本框控件 让客户端js添加的Option也能保持在DropDownList TextBoxWatermark文本框水印效果 统一项目按钮外观 exe代替批处理文件添加注册表数据 自定义文本框控件,包含Name跟ID 系统权限设置 话说统一项目的Back(后退)控件 Css实现的颜色皮肤更换 sql注入 DataTable拷贝DataTable的数据 项目统一错误捕获 让每个页面的生命周期过程只产生一个Connection连接 多浏览器web开发界面的注意事项 - 花边软件,花边管理软件,服装(鞋)管理软件 - 博客园 如何将公共的JS变量跟方法集中放在同一个地方而且只加载一次 JS实现的HashTable类来记录删除的记录的ID跟Name 多语言站点 asp.net Web控件的设计时调试 正则表达式替换字符串 - 花边软件,花边管理软件,服装(鞋)管理软件 - 博客园
一对多查询跟显示全路径Sql
花边软件,花边管理软件,服装(鞋)管理软件 · 2008-06-01 · via 博客园 - 花边软件,花边管理软件,服装(鞋)管理软件

 
表Document跟DocumentsFolderItem是一对多的关系,即一个Document文件可以放
多个Document文件夹,那现在我想实现就是查询出Document记录,但document不重复,sql的写法如下:
SELECT TOP 100 PERCENT dbo.Document.*
FROM dbo.Document LEFT OUTER JOIN
      dbo.DocumentsFolderItem ON
      dbo.Document.DocID = dbo.DocumentsFolderItem.DocID AND (FolderID is null or
      FolderID IN
          (SELECT MAX(FolderID)
         FROM dbo.DocumentsFolderItem where DocID=Document.DocID
         GROUP BY docid))
我还要实现一个功能是,显示Folder的全路径,
格式如下:ParentFolder/ChildFolder
创建了一个定义发函数,实现根据FolderID返回所有上级路径的文件夹名称
CREATE function GetDocumentFolderPath(@FolderID bigint)
returns nvarchar(1000)
as
begin
    declare @s nvarchar(1000),@Name nvarchar(20)
    lab:
    set @Name =(select Name from DocumentFolder where Status <> -1 and  FolderID=@FolderID)
    select @FolderID=ParentID from DocumentFolder where Status <> -1 and  FolderID=@FolderID
    if @Name is not null
        begin
            set @s=@Name+isnull('/'+@s,'')
            goto lab
        end
    return @s
end
调用如下:
SELECT dbo.GetDocumentFolderPath(dbo.DocumentsFolderItem.FolderID) as Name from DocumentsFolderItem

posted @ 2008-06-01 00:03  花边软件,花边管理软件,服装(鞋)管理软件  Views(1023)  Comments()    收藏  举报