[英]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.