gpt4 book ai didi

sql - 获取两行值不同的列名

转载 作者:搜寻专家 更新时间:2023-10-30 22:59:07 25 4
gpt4 key购买 nike

我有一个包含很多列的表格。有时我需要找出两行之间的差异。我可以通过滚动屏幕来完成,但它很乏味。我正在寻找可以为我执行此操作的查询,例如

SELECT columns_for_id_1 != columns_for_id_2
FROM xyz
WHERE id in (1,2)

表:

id col1 col2 col3 col4
1 qqq www eee rrr
2 qqq www XXX rrr

结果:

"Different columns: id, col3"

有没有简单的方法来做到这一点?

更新

另一个想要的例子:我有什么(表格有超过 50 列,而不是只有 7 列):

Id| Col1 | Col2 | Col3 | Col4 | Col5 | Col6 |
==============================================
1 | aaa | bbb | ccc | ddd | eee | fff |
----------------------------------------------
2 | aaa | XXX | ccc | YYY | eee | fff |

查询:

SELECT *
FROM table
WHERE Id = 1 OR Id = 2
AND "columns value differs"

查询结果:"Id, Col2, Col4"

或者像这样:
编号|列 2 |列 4 |
===============
1 |bbb |ddd |
--------------
2 |XXX |YYY |

现在我必须滚动 50 多个列以查看行是否相同,效率不高且容易出错。我不想像这样的任何长查询SELECT(比较 Id1.Col1 与 Id2.Col1,如果不同则打印“Col1 不同”,比较 Id1.Col2 与 Id2.Col2...) 因为我自己比较行会更快;)

最佳答案

像这样:

SELECT col, MIN(VAL) AS val1, MAX(val) AS val2
FROM (
SELECT id, val, col
FROM (
SELECT id, [col1], [col2], [col3], [col4]
FROM mytable
WHERE id IN (1,2)) AS src
UNPIVOT (
val FOR col IN ([col1], [col2], [col3], [col4])) AS unpvt ) AS t
GROUP BY col
HAVING MIN(val) <> MAX(val)

输出:

col  val1 val2
================
col3 eee XXX

关于sql - 获取两行值不同的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36173453/

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