sql - 在同一个表的列中返回具有唯一值的行
问题描述
我有这样的数据:
代码 | 电子邮件0 | 电子邮件1 | 电子邮件2 | 电子邮件3 | 电子邮件4 | 电子邮件5 | 电子邮件6 |
---|---|---|---|---|---|---|---|
美国广播公司 | abc@gmail.com | q@gmail.com | q@gmail.com | f@gmail.com | h@gmail.com | u@gmail.com | y@gmail.com |
国防军 | def@gmail.com | k@gmail.com | 无效的 | 无效的 | 无效的 | 无效的 | g@gmail.com |
XYZ | xyz@gmail.com | i@gmail.com | i@gmail.com | 无效的 | 无效的 | 无效的 | 无效的 |
我需要查询只返回带有 的第二行CODE=DEF
,因为EMAIL1
toEMAIL6
都是唯一值。
基本上我需要具有唯一值的行EMAIL1
to EMAIL6
。这里CODE
永远是独一无二的。
我试过了,CROSS JOIN
但没有成功。
解决方案
如果您想要没有重复电子邮件的行,您可以将电子邮件取消透视到横向连接中的行,然后将不同非null
值的计数与非null
值的计数进行比较:
select t.*
from mytable t
cross apply (
select count(distinct email) cnt1, count(email) cnt2
from (values (email0), (email1), ...) as x(email)
) x
where x.cnt1 = x.cnt2
推荐阅读
- javascript - 禁用按钮不工作
- kotlin - 如何直接在我的 Kotlin 语言应用中评价 Google Play 应用?
- ajax - 使用下拉菜单按帖子类型过滤帖子
- c++ - 多继承调用 shared_from_this 导致的 Bad_weak_ptr
- html - 单击文本框时重定向到特定部分?
- apostrophe-cms - 有没有办法在启动时授予停放页面的权限?
- python - 如何从表单输入触发器中获取流创建表单中的“创建时分支文件”值的值?
- java - 我需要使用 java 使用 document4j 远程转换器将我的 docx 扩展文件转换为 pdf
- java - Java 8 到 Java 11:com.sun.jndi.ldap 包不可见
- javascript - React Big Calendar 错误:元素类型无效:预期为字符串(对于内置组件)