gpt4 book ai didi

sql - 根据另一个列的值将一个 sql 列拆分为两个

转载 作者:行者123 更新时间:2023-12-05 02:36:25 25 4
gpt4 key购买 nike

我有一个像这样的 SQL 数据库设置:

#1 格式

<表类="s-表"><头>第 1 列(值)第 2 列(标识符)<正文>标题名称Collection_Title标题名称Collection_TitleImage_URLCollection_ImageImage_URLCollection_Image

我想将这两列拆分成四个单独的列,如下所示:

#2 格式

<表类="s-表"><头>VALUE #1标识符#1VALUE #2标识符 #2<正文>Image_URLCollection_Image标题名称Collection_TitleImage_URLCollection_Image标题名称Collection_Title

到目前为止我有查询:

SELECT  value, identifier
FROM [tableName]
WHERE identifier IN ('Image_URL', 'Title_Name');

并返回 #1 格式,因此我拥有从查询返回的所有信息。我的问题是我想让它在 #2 查询中显示,每列都有一个唯一的名称。

如何扩展或改进我的查询以返回 #2 格式?

谢谢你:)

最佳答案

您可以使用CROSS JOIN 并获得笛卡尔坐标:

SELECT * FROM (
SELECT value, identifier
FROM [tableName]
WHERE identifier = 'Collection_Image'
) Images
CROSS JOIN (
SELECT value, identifier
FROM [tableName]
WHERE identifier = 'Collection_Title'
) Titles;

结果:

+============+==================+=============+==================+
| value | identifier | value | identifier |
+============+==================+=============+==================+
| Image_URL1 | Collection_Image | Title_Name1 | Collection_Title |
+------------+------------------+-------------+------------------+
| Image_URL2 | Collection_Image | Title_Name1 | Collection_Title |
+------------+------------------+-------------+------------------+
| Image_URL1 | Collection_Image | Title_Name2 | Collection_Title |
+------------+------------------+-------------+------------------+
| Image_URL2 | Collection_Image | Title_Name2 | Collection_Title |
+------------+------------------+-------------+------------------+

SQL cartesian fiddle

您还可以使用 ROW_NUMBER 函数作为连接条件:

SELECT Images.value, Images.identifier, Titles.value, Titles.identifier  
FROM (
SELECT value, identifier, row_number() over(order by value) rn
FROM [tableName]
WHERE identifier = 'Collection_Image'
) Images
FULL OUTER JOIN (
SELECT value, identifier, row_number() over(order by value) rn
FROM [tableName]
WHERE identifier = 'Collection_Title'
) Titles ON Images.rn = Titles.rn;

FULL OUTER JOIN

关于sql - 根据另一个列的值将一个 sql 列拆分为两个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70257990/

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