简体   繁体   English

根据另一列中的值比较一列中的两个值

[英]Compare two values from one column based on values in another

I have table where I need to compare two values based on their names in another column to see which one is bigger.我有一个表格,我需要根据它们在另一列中的名称来比较两个值,以查看哪个更大。 Basically:基本上:

If **name1** -> value1
If **name2** -> value2
Compare **value1 > value2**

在此处输入图片说明

I have done summations but I cannot find a way to use the CASE WHEN approach to this situation.我已经做了总结,但我找不到在这种情况下使用CASE WHEN方法的方法。

You can PIVOT the data and have all values in current row.您可以PIVOT数据并在当前行中包含所有值。 Then, compare them as you like:然后,根据需要比较它们:

SELECT [Id]
      ,[name1], [name2], [name3], [name4]
FROM [my_table]
PIVOT
(
    MAX([value]) FOR [column] IN ([name1], [name2], [name3], [name4])
) PVT

or或者

SELECT [Id]
      ,MAX(CASE WHEN [column] = 'name1' THEN [value] END) AS [name1]
      ,MAX(CASE WHEN [column] = 'name2' THEN [value] END) AS [name2]
      ,MAX(CASE WHEN [column] = 'name3' THEN [value] END) AS [name3]
      ,MAX(CASE WHEN [column] = 'name4' THEN [value] END) AS [name4]
FROM [my_table]
GROUP [Id];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM