小编use*_*175的帖子

这是在存储过程中使用UNION ALL的正确方法吗?

这是UNION ALL存储过程中的正确方法吗?

ALTER PROCEDURE [GetHomePageObjectPageWise]
      @PageIndex INT = 1
      ,@PageSize INT = 10
      ,@PageCount INT OUTPUT
      ,@whereStoryID varchar(2000)
      ,@whereAlbumID varchar(2000)
      ,@wherePictureID varchar(2000)
AS
BEGIN
      SET NOCOUNT ON;

      SELECT StoryID
      , AlbumID
      , StoryTitle
      , NULL AS AlbumName
      , (SELECT URL FROM AlbumPictures WHERE (AlbumID = dbo.Stories.AlbumID) AND (AlbumCover = 'True')) AS AlbumCover
      , Votes
      , NULL AS PictureId
      , 'stories' AS tableName
      , NEWID() AS Sort 

INTO #Results1
FROM Stories WHERE StoryID IN (SELECT StringVal FROM funcListToTableInt(@whereStoryID))

      SELECT …
Run Code Online (Sandbox Code Playgroud)

sql sql-server union stored-procedures sql-server-2008-r2

5
推荐指数
1
解决办法
2983
查看次数

嵌套选择还是加入?

这是我存储的Proc的片段

SELECT  NULL AS StoryID
      , AlbumID
      , CAST(NULL as varchar) AS StoryTitle
      , AlbumName
      , (SELECT URL FROM AlbumPictures AS AlbumPictures_3 WHERE (AlbumID = Albums.AlbumID) AND (AlbumCover = 'True')) AS AlbumCover
      , Votes
      , CAST(NULL as Int) AS PictureId
      , 'albums' AS tableName
      , (SELECT NestedAlbums.AlbumID FROM NestedAlbums WHERE (AlbumID = Albums.AlbumID)) AS Flag
INTO #Results2
FROM Albums WHERE AlbumID IN (SELECT StringVal FROM funcListToTableInt(@whereAlbumID))
Run Code Online (Sandbox Code Playgroud)

我在上面的查询中使用了嵌套选择.我很好奇,想知道是否Nested Selects有优于LEFT/Right JOINS或者我应该使用JOINS

表相册:

在此输入图像描述

表NestedAlbums:

在此输入图像描述

sql sql-server

5
推荐指数
1
解决办法
8154
查看次数

从多个表创建一个VIEW,每个表具有不同的列数

我想将多个表合并为一个VIEW.
我的理解是,如果列数不同,我们就无法使用UNION.
我该如何解决这个问题?

我有以下三个TABLES:

1. 表名 - 相册

在此输入图像描述

2. 表名 - AlbumPictures

在此输入图像描述

3. 表名称 - 故事

在此输入图像描述

我希望有3个表格如下:(我可以使用INNER JOINS做这个部分 - 如果我错了,请帮我解决)

对于故事: StoryID,AlbumID,StoryTitle,AlbumCover,投票

对于专辑: AlbumID,AlbumName,AlbumCover,Votes

对于图片: AlbumPictureID,投票

我想将从上面的查询中检索到的所有行合并为一个VIEW并将它们混合.由于上面每个结果集中的列数不同,我可以将它们组合成一个VIEW吗?

sql sql-server asp.net sql-server-2008

0
推荐指数
1
解决办法
1351
查看次数