Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 当我有两行具有相同ID时,如何选择具有特定数据的行?_Sql_Sql Server - Fatal编程技术网

Sql 当我有两行具有相同ID时,如何选择具有特定数据的行?

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

我再次需要你的帮助! 我试图在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            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,则打印好的文档
我的问题是文档。文件不一样。我不能用MIN

我还没有找到解决办法


谢谢,

一种方法使用
行号()


这是一个优先级查询的示例,您试图从多行中为同一
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;