Sql 如何获得不同的id列以防止重复结果?

Sql 如何获得不同的id列以防止重复结果?,sql,sql-server,Sql,Sql Server,我需要distinct id=15-我如何才能做到这一点 有两种不同的结果,-3和-9如果每个id只需要一行,请使用行号: 12 102 0 0 0 0 0 0 0 1 1 1 False False False False False False False False False False False False False False False False .... Fals

我需要distinct id=15-我如何才能做到这一点

有两种不同的结果,-3和-9

如果每个id只需要一行,请使用行号:

12  102 0   0   0   0   0   0   0   1   1   1   False   False   False   False   False   False   False   False   False   False   False   False   False   False   False   False   ....    False   0   شاغر    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL
14  104 0   0   0   0   0   0   0   1   1   1   False   False   False   False   False   False   False   False   False   False   False   False   False   False   False   False   ....    False   0   شاغر    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL
15  105 0   0   0   0   0   0   0   1   1   1   False   False   False   False   False   False   False   False   False   False   False   False   False   False   False   False   ....    False   0   شاغر    15  يومي    25/09/2017  02/10/2017  10  0   105 0.0000  سالم علي محمد   بدون    بدون    $   0.0000  0.0000  0.0000  ............    22/09/2017 10:35:24 م   NULL    محجوز   سعودي   123456  -2  -9  0.00    0.00    0.00
15  105 0   0   0   0   0   0   0   1   1   1   False   False   False   False   False   False   False   False   False   False   False   False   False   False   False   False   ....    False   0   شاغر    16  يومي    28/09/2017  28/09/2017  5   0   105 0.0000  سالم علي محمد   بدون    بدون    $   0.0000  0.0000  0.0000  ............    23/09/2017 01:31:21 ص   NULL    محجوز   سعودي   123456  -5  -5  0.00    0.00    0.00
16  106 0   0   0   0   0   0   0   1   1   1   False   False   False   False   False   False   False   False   False   False   False   False   False   False   False   False   ....    False   0   شاغر    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL

注意到我在WHERE条件中添加了括号。此逻辑与您的逻辑稍有不同,但这可能是您真正想要的。

SELECT v.*从SELECT i.*中,按id分区上的行数按id排序按房间中的seqnum排序监视器视图为i,其中状态为NULL或状态为'i',diffarest<0 v,其中seqnum=1;
12  102 0   0   0   0   0   0   0   1   1   1   False   False   False   False   False   False   False   False   False   False   False   False   False   False   False   False   ....    False   0   شاغر    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL
14  104 0   0   0   0   0   0   0   1   1   1   False   False   False   False   False   False   False   False   False   False   False   False   False   False   False   False   ....    False   0   شاغر    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL
15  105 0   0   0   0   0   0   0   1   1   1   False   False   False   False   False   False   False   False   False   False   False   False   False   False   False   False   ....    False   0   شاغر    15  يومي    25/09/2017  02/10/2017  10  0   105 0.0000  سالم علي محمد   بدون    بدون    $   0.0000  0.0000  0.0000  ............    22/09/2017 10:35:24 م   NULL    محجوز   سعودي   123456  -2  -9  0.00    0.00    0.00
15  105 0   0   0   0   0   0   0   1   1   1   False   False   False   False   False   False   False   False   False   False   False   False   False   False   False   False   ....    False   0   شاغر    16  يومي    28/09/2017  28/09/2017  5   0   105 0.0000  سالم علي محمد   بدون    بدون    $   0.0000  0.0000  0.0000  ............    23/09/2017 01:31:21 ص   NULL    محجوز   سعودي   123456  -5  -5  0.00    0.00    0.00
16  106 0   0   0   0   0   0   0   1   1   1   False   False   False   False   False   False   False   False   False   False   False   False   False   False   False   False   ....    False   0   شاغر    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL
SELECT v.*
FROM (SELECT v.*,
             ROW_NUMBER() OVER (PARTITION BY id ORDER BY id) as seqnum
      FROM rooms_monitorview
      WHERE (state IS NULL OR state = 'محجوز') AND diffarest < 0
     ) v
WHERE seqnum = 1;