SQL 从一列中获取商品和类别的值,并将它们传递到两个不同的列中

问题描述 投票:0回答:1

这是桌子goodandcat

项目 钥匙
电子 0
智能手机 1
笔记本电脑 1
相机 1
耳机 1
服装 0
T恤 1
牛仔裤 1
连衣裙 1
夹克 1

Item 列有类别和商品的名称,Key 列中分别有 0 和 1。 需要将所有类别和商品提取到两个不同的列中,例如“商品”和“类别”。因此,每个商品项目在每一行中都必须有其各自的类别项目。

我尝试执行此SQL

SELECT 
    CASE WHEN Key = 0 THEN Item ELSE NULL END AS Category,
    CASE WHEN Key = 1 THEN Item ELSE NULL END AS Goods
FROM goodsandcat;

查询结果为:

类别 商品
电子
智能手机
笔记本电脑
相机
耳机
服装
T恤
牛仔裤
连衣裙
夹克

但预计将按各自的类别项填写类别列中的所有 NULL。所以,它一定是这样的:

类别 商品
电子
电子 智能手机
电子 笔记本电脑
电子 相机
电子 耳机
服装
服装 T恤
服装 牛仔裤
服装 连衣裙
服装 夹克

如何编写sql查询以获得上述结果?

sql postgresql select fetch categories
1个回答
0
投票

电子产品和商品之间没有关系,服装和服装项目您可以将电子产品更改为0,将电子产品更改为1,类似地将服装更改为2,将服装项目更改为3,然后相应地更改您的sql查询。

© www.soinside.com 2019 - 2024. All rights reserved.