gpt4 book ai didi

sql - 如何将两个列表转换为邻接矩阵 SQL Server T-SQL?

转载 作者:行者123 更新时间:2023-12-05 00:13:11 27 4
gpt4 key购买 nike

我在 SQL Server 2005 中有包含两列 Fruit 和 Color 的表,如下所示

Fruit          Colour
Apple Red
Orange Red
Berry Green
PineApple Green

现在我想把它转换成邻接矩阵查询
如下所示
                Red        Green
Apple 1 0
Orange 1 0
Berry 0 1
PineApple 0 1

如果有水果和颜色,我想要做的是给 1
否则我想给 0

最佳答案

下面是一个例子:

CREATE TABLE #Fruits (name varchar(10), color varchar(10))
GO

INSERT #Fruits VALUES ('Apple', 'Red')
INSERT #Fruits VALUES ('Orange', 'Red')
INSERT #Fruits VALUES ('Berry', 'Green')
INSERT #Fruits VALUES ('PineApple', 'Green')
GO

DECLARE @select_query nvarchar(4000);
DECLARE table_cursor CURSOR
FOR SELECT DISTINCT color FROM #Fruits;
DECLARE @color varchar(10);

SET @select_query = N'SELECT name'

OPEN table_cursor;
FETCH NEXT FROM table_cursor INTO @color;

WHILE @@FETCH_STATUS = 0
BEGIN
SET @select_query = @select_query + N', CASE WHEN color = ''' + @color + N''' THEN 1 ELSE 0 END AS ' + @color;
FETCH NEXT FROM table_cursor INTO @color;
END
CLOSE table_cursor;
DEALLOCATE table_cursor;

SET @select_query = @select_query + N' FROM #Fruits';
EXEC sp_executesql @select_query
  • 寻找不同的颜色
  • 构建 SELECT 语句
  • 通过 sp_executesql
  • 执行

    关于sql - 如何将两个列表转换为邻接矩阵 SQL Server T-SQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6536396/

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