Sql 在一列中联接表并将结果显示为文本

Sql 在一列中联接表并将结果显示为文本,sql,Sql,我需要连接两个表中的两列,并按特定顺序显示它们 表1和表2 表2和柱状描述 主键是ColumnID 对于每个ColumnM,我有多行ColumnDESC。因此,我必须以以下格式显示: ColumnID ColumnNM ------------------- ColumnDESC ColumnDESC ColumnDESC ColumnDESC ColumnID ColumnNM ------------------- ColumnDESC ColumnDESC ColumnID Colum

我需要连接两个表中的两列,并按特定顺序显示它们

表1和表2 表2和柱状描述

主键是ColumnID

对于每个ColumnM,我有多行ColumnDESC。因此,我必须以以下格式显示:

ColumnID ColumnNM ------------------- ColumnDESC ColumnDESC ColumnDESC ColumnDESC ColumnID ColumnNM ------------------- ColumnDESC ColumnDESC ColumnID ColumnNM ------------------- ColumnDESC ColumnDESC ColumnDESC 但我想我已经走远了

好的,编辑,在John Tabernik建议我得到这个

另外,很抱歉在您的回答中添加了一条评论,只是在学习如何使用stackoverflow

最后,我把M.的名字重复了四次,因为第一个M.的名字有四种不同的L.描述,其他M.的名字有不同的金额

例如:

M.Name | L.Description
-----------------------------
A      |    1
A      |    2
A      |    3
B      |    1
B      |    2
C      |    1
C      |    2
C      |    3
但我需要它像这样输出:

A   |
-----
1   |
2   |
3   |

B   |
-----
1   |
2   |

C   |
-----
1   |
2   |
SELECT column1, column2
FROM table1 T1
    JOIN table2 T2
          on T1.id = T2.foreignkey
ORDER BY column1, column2

用标题和----行分隔各部分有多重要?简单的SQL不能做到这一点,但如果结果可以全部放在一起并简单地排序,那就很容易了

你只想要这样的东西:

A   |
-----
1   |
2   |
3   |

B   |
-----
1   |
2   |

C   |
-----
1   |
2   |
SELECT column1, column2
FROM table1 T1
    JOIN table2 T2
          on T1.id = T2.foreignkey
ORDER BY column1, column2

您可以利用任何提取数据的方法对其进行格式化,但这种通用方法将获得数据,并按您想要的方式进行排序。祝你好运

很抱歉回来晚了一点,但我已经解决了我需要的问题。我想我对这个问题的措辞有点不当。尽管如此,下面是我需要的代码。希望它能激励任何有类似问题的人:

CREATE PROCEDURE ShowModuleWithLessons 
@CourseID int = 0
AS
BEGIN

SET NOCOUNT ON

DECLARE @MS INT
DECLARE @ModuleCount INT


SET @MS = 0
SET @ModuleCount = (Select COUNT(Module.ModuleSequence) FROM Module WHERE Module.CourseID = @CourseID)

IF EXISTS (SELECT * FROM Module WHERE Module.CourseID = @CourseID)
BEGIN
    WHILE @MS < @ModuleCount
    BEGIN
        SET @MS=@MS+1
            DECLARE @Name nvarchar(max),
                    @Lesson nvarchar(max),
                    @CID INT
            SELECT  @Name = Module.Name,
                    @CID = @MS
            FROM Module
            JOIN Lesson ON Module.ModuleSequence = Lesson.ModuleSequence
            WHERE Module.ModuleSequence = @MS


            PRINT CONVERT(VARCHAR(2),@MS) + '. ' +  @Name

            SELECT Lesson.Description AS Lessons
            FROM Module
            JOIN Lesson ON Module.ModuleSequence = Lesson.ModuleSequence
            WHERE Module.ModuleSequence = @MS
    END
END
ELSE
BEGIN
    PRINT 'Course with ID ' + CONVERT(VARCHAR(2),@CourseID) + ' does not exists'
END

+1数据库存储和获取数据。应该在应用层对其进行良好的格式化。