已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。
4天前关闭。
Improve this question
我有一个列,可以是三个元素中的任意一个,分别是x,y,z,列不允许只有z。
我可以在集合论中想象这一点,其中S = {x,y,z},并且我需要S的除集合{z}之外的所有子集。
如何编写一个SQL语句,让列是x,y,z的任意子集,除了z本身?
例如:
| 识别号|价值|
| - ------|- ------|
| 1个|x|
| 1个|Y型|
| 1个|z|
| 第二章|x|
| 第二章|z|
| 三个|z|
| 三个|z|
预期输出:
| 识别号|价值|
| - ------|- ------|
| 1个|x|
| 1个|Y型|
| 1个|z|
| 第二章|x|
| 第二章|z|
3条答案
按热度按时间bf1o4zei1#
您可以尝试使用计数窗口功能如下:
参见demo。
e5njpo682#
可以使用 exists 半连接:
jchrr9hc3#
您可以根据自己的条件使用
EXCEPT
| 识别号|价值|
| - ------|- ------|
| 1个|x|
| 1个|Y型|
| 1个|z|
| 第二章|x|
| 第二章|z|
fiddle
如果数据不是唯一的,则可以使用
NOT IN
代替x一个一个一个一个x一个一个二个一个x一个一个三个一个
| 识别号|价值|
| - ------|- ------|
| 1个|x|
| 1个|Y型|
| 1个|z|
| 第二章|x|
| 第二章|z|
| 四个|x|
| 四个|x|
| 四个|x|
| 五个|Y型|
| 五个|Y型|
| 五个|Y型|
fiddle