top

笔记118 根据传入不同的@Uname查询不同的表的存储过程

笔记118 根据传入不同的@Uname查询不同的表的存储过程

复制代码
 1 --根据传入不同的@Uname查询不同的表的存储过程
 2 --我现在有4个表:User表 Expert表 Enterprise表 CommentSite表
 3 --
 4 --现在要显示CommentID,CommentPoster,CommentContent,CommentPostedTime,Name
 5 --由于发布者的类型不同不知道是ExpertName还是EnterpriseName
 6 --请问这个Select语句该怎么写
 7 USE [test]
 8 GO
 9 /****** Object:  StoredProcedure [dbo].[GetUserInFo]    Script Date: 08/20/2012 16:08:05 ******/
10 SET ANSI_NULLS ON
11 GO
12 SET QUOTED_IDENTIFIER ON
13 GO
14 CREATE PROC [dbo].[GetUserInFo] @Uname VARCHAR(100)
15 AS
16     DECLARE @Usertype INT
17     SELECT  @Usertype = UserType
18     FROM    [User]
19     WHERE   UserName = @Uname
20     IF @Usertype = 1
21         BEGIN
22             SELECT  a.CommentID ,
23                     a.CommentPoster ,
24                     a.CommentContent ,
25                     a.CommentPostedTime ,
26                     b.ExpertName
27             FROM    Commentsite AS a WITH ( NOLOCK )
28                     INNER JOIN Expert AS b WITH ( NOLOCK ) ON a.CommentPoster = b.UserName
29         END
30     ELSE
31         BEGIN
32             SELECT  a.CommentID ,
33                     a.CommentPoster ,
34                     a.CommentContent ,
35                     a.CommentPostedTime ,
36                     b.EnterpriseName
37             FROM    Commentsite AS a WITH ( NOLOCK )
38                     INNER JOIN Expertprise AS b WITH ( NOLOCK ) ON a.CommentPoster = b.UserName
39         END
复制代码

 

posted @   桦仔  阅读(309)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示