SQL查询使用键/值对从同一个表中选择和排序所有对象

SQL查询使用键/值对从同一个表中选择和排序所有对象,sql,Sql,好的,我有一个表,其中包含我需要查询和排序的键和值,看起来有点像这样: 假设我想提取“dog”(和任何其他值)网络分类中的所有不同项(资源号),并按升序按“order”排序,结果如下: 我不知道如何查询我的表以允许此操作…我尝试了内部联接,但它们似乎不起作用…有人能帮忙吗?谢谢 在同一个表中,当所有数据都在单独的行中时,阅读起来有点棘手,但是对于您现在拥有的值,这应该可以做到。如果您考虑的是动态列,则需要执行特定于数据库的过程 select resource_no , 'dog

好的,我有一个表,其中包含我需要查询和排序的键和值,看起来有点像这样:

假设我想提取“dog”(和任何其他值)网络分类中的所有不同项(资源号),并按升序按“order”排序,结果如下:


我不知道如何查询我的表以允许此操作…我尝试了内部联接,但它们似乎不起作用…有人能帮忙吗?谢谢

在同一个表中,当所有数据都在单独的行中时,阅读起来有点棘手,但是对于您现在拥有的值,这应该可以做到。如果您考虑的是动态列,则需要执行特定于数据库的过程

select  resource_no
,       'dog'
,       location
from    YourTable
where   webcategory = 'location'
        and resource_no in 
        (
        select  resource_no
        from    YourTable
        where   webcategory = 'dog'
        )
order by
        location
SELECT a.RESOURCE_NO, a.value webcategory, b.value location 
FROM      resources a
LEFT JOIN resources b ON a.RESOURCE_NO=b.RESOURCE_NO AND b.key='location'
LEFT JOIN resources c ON a.RESOURCE_NO=c.RESOURCE_NO AND c.key='order'
WHERE a.key = 'webcategory' AND a.value='dog'
GROUP BY RESOURCE_NO
ORDER BY c.value 

演示。

如果这是家庭作业,请添加家庭作业标签。您尚未接受与这些表格相关的上一个问题的答案。lol,这是工作,不是家庭作业。上一个问题已接受,谢谢……但后来我意识到上面的问题确实是我需要的问题,很抱歉提出了类似的问题,感谢您的回答。接下来……您知道如何更正订单字段中的潜在空值吗?@Stephen您是指具有键“order”的行的值字段中的空值,还是完全缺少订单行?还有,正确的方法是什么?您要先分类还是最后分类,还是。。。?