请帮助我,如何做他的 - SQL 查询(SQL Server 2000)

发布于 2024-10-12 18:55:57 字数 367 浏览 4 评论 0原文

我有这样的数据:

ID   Name         Date
1    kishore      18-jan-2010
2    kishh        19-jan-2010
3    kii          NULL
4    kk           null
5    k            19-jan-2010

我应该得到这样的结果:

ID   Name           Date
1    kishore        18-jan-2010
2    kishh,kii,kk   19-jan-2010
5    k              19-jan-2010

I have data like this:

ID   Name         Date
1    kishore      18-jan-2010
2    kishh        19-jan-2010
3    kii          NULL
4    kk           null
5    k            19-jan-2010

I should get a result like this:

ID   Name           Date
1    kishore        18-jan-2010
2    kishh,kii,kk   19-jan-2010
5    k              19-jan-2010

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

薆情海 2024-10-19 18:55:57

首先,您创建一个函数,它接受一个 ID 并返回您想要的字符串...

CREATE FUNCTION dbo.StringFromID(@id int)
RETURNS varchar(8000)
AS
BEGIN
    DECLARE @value varchar(8000)
    DECLARE @date datetime
    SELECT @date = [date], @value = [name] 
    FROM test_data WHERE [id] = @id

    WHILE EXISTS (  SELECT * FROM test_data 
            WHERE [id] = @id + 1 
            AND [date] IS NULL)
    BEGIN
        SELECT  @value = @value + ',' + [name]
        FROM test_data
        WHERE [id] = @id + 1

        SELECT @id = @id + 1
    END
    RETURN @value
END

然后您调用该函数并显示您的结果。

SELECT [id], dbo.StringFromID(t.[id]) 'Name', [date]
FROM test_data t
WHERE [date] IS NOT NULL

First, you create a function which takes an ID and returns the string you're after...

CREATE FUNCTION dbo.StringFromID(@id int)
RETURNS varchar(8000)
AS
BEGIN
    DECLARE @value varchar(8000)
    DECLARE @date datetime
    SELECT @date = [date], @value = [name] 
    FROM test_data WHERE [id] = @id

    WHILE EXISTS (  SELECT * FROM test_data 
            WHERE [id] = @id + 1 
            AND [date] IS NULL)
    BEGIN
        SELECT  @value = @value + ',' + [name]
        FROM test_data
        WHERE [id] = @id + 1

        SELECT @id = @id + 1
    END
    RETURN @value
END

Then you call that function and display your results.

SELECT [id], dbo.StringFromID(t.[id]) 'Name', [date]
FROM test_data t
WHERE [date] IS NOT NULL
娇女薄笑 2024-10-19 18:55:57

下次,除了示例之外,还写出所需的排序标准。试试这个:

select [id], [name], [date] from MyTable
where [date] is not null
order by [date]

Next time, write out the desired sort criteria in addition to example. Try this:

select [id], [name], [date] from MyTable
where [date] is not null
order by [date]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文