小编kro*_*ock的帖子

SQL Server-是否有更好的方法让我根据不同数量的行中的值进行选择?

假设我有一个这样的表:

id     value
1      a
1      x
1      x
2      b
2      b
2      y
3      c
3      d
3      z
10     c
10     c
10     z
11     x
11     y
11     z
Run Code Online (Sandbox Code Playgroud)

我想选择ID(可以重复ID),其中值是a,b或c和d。因此,在这种情况下,我将选择1、2和3。请注意,每个id值组合都可以使用重复值。

我有这段代码可以工作:

SELECT id 
FROM table
WHERE value = 'a' OR value = 'b'

UNION 

SELECT t1.id 
FROM table t1 
INNER JOIN table t2
ON t1.id = t2.id 
WHERE t1.value = 'c' AND t2.value = 'd'
Run Code Online (Sandbox Code Playgroud)

但是我的SQL技能很生锈,我无法动摇有更好的方法来做这件事。这将是一些复杂的旧版代码中间的子查询,因此我想确保我的代码简洁高效。

同样,这个问题不是重复的,因为它涉及基于一个行值或两个行值同时选择id的问题,我发现的所有问题都涉及基于两个行值的选择问题。我已经在查询的后半部分解决了该问题。

sql sql-server

0
推荐指数
1
解决办法
34
查看次数

标签 统计

sql ×1

sql-server ×1