Sql 当我有两行具有相同ID时,如何选择具有特定数据的行?
我再次需要你的帮助! 我试图在SQL中得到一个特定的结果 我有一个SQL查询,如:Sql 当我有两行具有相同ID时,如何选择具有特定数据的行?,sql,sql-server,Sql,Sql Server,我再次需要你的帮助! 我试图在SQL中得到一个特定的结果 我有一个SQL查询,如: Select ID, DOCUMENTATION, FIELDCODE FROM TABLE. 结果是: ID DOCUMENTATION FIELDCODE 1 testDoc 0 1 NULL 202 2 NULL 202 3 NULL 202 4 testDoc2 0 4 NULL
Select ID, DOCUMENTATION, FIELDCODE FROM TABLE.
结果是:
ID DOCUMENTATION FIELDCODE
1 testDoc 0
1 NULL 202
2 NULL 202
3 NULL 202
4 testDoc2 0
4 NULL 202
但是,我希望:
ID DOCUMENTATION FIELDCODE
1 testDoc 0
2 NULL 202
3 NULL 202
4 testDoc2 0
总而言之:
- 如果存在字段代码0,我希望该字段代码为0
- 如果字段代码0不存在,我需要字段代码202
- 字段代码id将始终为202
- 202字段代码的文档将始终设置为空
- 带有文档的字段代码始终为0
- 我正在用一个案例构建文档:如果字段代码是202->set NULL,则打印好的文档李>
谢谢,一种方法使用
行号()
这是一个优先级查询的示例,您试图从多行中为同一id
选择row_number()
通常是处理这些查询的最简单方法。请标记您的数据库。我编辑了它,谢谢。我正在尝试您的解决方案。谢谢!很好用!非常有用。我还在学习,你教我点东西!谢谢
select t.*
from (select t.*,
row_number() over (partition by id order by fieldcode) as seqnum
from t
) t
where seqnum = 1;