我需要连接两个表中的两列并以特定顺序显示它们
Table1 和 ColumnNM 表
2 和 ColumnDESC
主键是 ColumnID
每个 ColumnNM 都有多行 ColumnDESC。所以我必须以以下格式显示:
ColumnID ColumnNM ------------------ 列DESC 列DESC 列DESC 列DESC ColumnID ColumnNM ------------------ 列DESC 列DESC ColumnID ColumnNM ------------------ 列DESC 列DESC 列DESC
我必须将结果显示为文本,而不是网格。关于如何做到这一点的任何建议?我必须将其创建为存储过程。任何帮助表示赞赏。据我所知,以下是:
DECLARE @Name nvarchar(max),
@Lesson nvarchar(max),
@lb nvarchar(max)
SET @lb = '----------------------------------------------------'
SELECT @Name = Module.Name
FROM Module
JOIN Lesson ON Module.ModuleSequence = Lesson.ModuleSequence
WHERE Module.ModuleSequence = 1
PRINT '1 ' + @Name
PRINT @lb
SELECT Lesson.Description
FROM Module
JOIN Lesson ON Module.ModuleSequence = Lesson.ModuleSequence
WHERE Module.ModuleSequence = 1
但我想我已经走了。
.............................好的,编辑,在约翰 Tabernik 建议之后我懂了......................................
(PS很抱歉在您的答案中添加评论,只是学习如何使用stackoverflow)
SELECT M.Name, L.Description
FROM Module M
JOIN Lesson L
ON M.ModuleSequence = L.ModuleSequence
ORDER BY M.Name, L.Description
我最终将 M.Name 重复了四次,因为第一个 M.Name 有四种不同的 L.Description,而所有其他 M.Name 的数量也不同。
例子:
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 |