gpt4 book ai didi

sql - 在多行中显示一列

转载 作者:行者123 更新时间:2023-12-01 23:34:18 25 4
gpt4 key购买 nike

我一直在寻找一种在多行、一个单元格中显示一列的方法。它的内容以逗号分隔。

例如,代替:

项目 ID 标签 ———————— 1200 标签1 1200 标签 2 1200 标签3

我希望我的查询结果如下所示:

ProjectID                    Label
———— ——–
1200 label1, label2, label3

提前致谢

最佳答案

有多种方法可以做到这一点。一种选择是创建一个表值函数,该函数将您的多值单元格“拆分”在不同的记录上。这是拆分函数的示例:

ALTER FUNCTION [dbo].[Split](@RowData VARCHAR(MAX), @SplitOn VARCHAR(5))  
RETURNS @RtnValue TABLE
(
Id int identity(1,1),
Data VARCHAR(MAX)
)
AS
BEGIN
Declare @Cnt int
Set @Cnt = 1

While (Charindex(@SplitOn,@RowData)>0)
Begin
Insert Into @RtnValue (data)
Select
Data = ltrim(rtrim(Substring(@RowData,1,Charindex(@SplitOn,@RowData)-1)))

Set @RowData = Substring(@RowData,Charindex(@SplitOn,@RowData)+1,len(@RowData))
Set @Cnt = @Cnt + 1
End

Insert Into @RtnValue (data)
Select Data = ltrim(rtrim(@RowData))

Return
END

创建后,您可以执行以下操作来获取结果:

SELECT *
FROM YourTable A
CROSS APPLY dbo.Split(Label,', ') B

关于sql - 在多行中显示一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9702020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com