gpt4 book ai didi

SQL查询沿列查找相等的行值

转载 作者:行者123 更新时间:2023-12-01 11:55:14 26 4
gpt4 key购买 nike

我有这张 table

col 1   col 2   col 3   ....    col N
-------------------------------------
1 A B fooa
10 A foo cc
4 A B fooa

有可能使用 tsql 查询仅返回一行,其中的值仅在所有值都相同的情况下?

col 1   col 2   col 3   ....    col N
-------------------------------------
-- A -- --

最佳答案

SELECT
CASE WHEN COUNT(col1) = COUNT(*) AND MIN(col1) = MAX(col1) THEN MIN(col1) END AS col1,
CASE WHEN COUNT(col2) = COUNT(*) AND MIN(col2) = MAX(col2) THEN MIN(col2) END AS col2,
...
FROM yourtable

您必须在列中允许 NULL:

  • COUNT(*) 计数
  • COUNT(col1) 不计算它们

也就是说,混合了 As 和 NULL 的列不是一个值。 MIN 和 MAX 都会给出 A,因为它们忽略 NULL。

编辑:

  • 删除了 DISTINCT 以获得相同的 NULL 检查计数
  • 添加了 MIN/MAX 检查(根据 Mark Byers 删除的答案)以检查唯一性

关于SQL查询沿列查找相等的行值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7921552/

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