有关系
X | Y
-------
a | i
a | ii
b | ii
b | ii
Run Code Online (Sandbox Code Playgroud)
如何查询
X存在用于其一个Y长度2(应产生的{ a, b })X所有Y长度为2 的集合(应屈服{ b })第一个非常简单(请注意,在所有示例中,LENGTH_FUNCTION代表您所使用的任何SQL数据库中特定于产品的字符串长度函数):
SELECT DISTINCT X FROM RelationName WHERE LENGTH_FUNCTION(Y) = 2;
Run Code Online (Sandbox Code Playgroud)
对于第二个问题,有多种解决问题的方法。
SELECT X FROM RelationName GROUP BY X
HAVING MIN(LENGTH_FUNCTION(Y)) = 2 AND MAX(LENGTH_FUNCTION(Y)) = 2
Run Code Online (Sandbox Code Playgroud)
将汇总所有X值并过滤长度仅为2的那些X
SELECT DISTINCT X FROM RelationName WHERE LENGTH_FUNCTION(Y) = 2
AND X NOT IN (SELECT DISTINCT X FROM RelationName WHERE LENGTH_FUNCTION(Y) <> 2)
Run Code Online (Sandbox Code Playgroud)
使用与第一个查询相同的过滤器,但另外过滤掉表中其他位置存在的任何X值(长度为2 Y)。最后
SELECT DISTINCT X FROM RelationName RN1 WHERE LENGTH_FUNCTION(Y) = 2
AND NOT EXISTS (SELECT * FROM RelationName WHERE X = RN1.X AND LENGTH_FUNCTION(Y) <> 2)
Run Code Online (Sandbox Code Playgroud)
以您可能会发现更具表现力的方式进行相同的过滤(但性能可能较低)
| 归档时间: |
|
| 查看次数: |
1018 次 |
| 最近记录: |