iT邦幫忙

2

SQL 排除異常資料

請問 如果 我想撈 前面 8筆資料,卻發現 前面 8筆資料的其中幾筆是錯誤的.

可以跳過他們 語法能自動跳過去撈之前8筆資料嗎?(撈正確的)

我撈8筆資料是這樣

SELECT TOP 8 M_DateTime ,A515V ,A515S  FROM dbo.P1234567_Hr_2018 WHERE DP_NO = 'A006'    ORDER BY M_DateTime DESC;

https://ithelp.ithome.com.tw/upload/images/20180814/20109425Un6e73J8IF.jpg

如上圖所示 , A515S 裡面是038 對過去 數值是 6,1,1,1,1000 代表異常
我想排除他們

然後撈之前的第 6,7,8,9,10,11,12,13 之前的8筆這樣 ,就是跳過異常部分一樣撈8筆,有異常都跳過

想問排除異常部分該怎麼加入進去

你的異常認定是怎樣的???
因多個欄位判斷異常不就可以??
ted8224 iT邦新手 5 級 ‧ 2018-08-14 15:03:06 檢舉
我有 代碼.. 當出現 該狀態時候 , 就是異常... 031 ,032 ~038 等等之類..
where子句多這個判斷式,where 狀態 not in ('031','032'~~~~,'038')

2 個回答

4
純真的人
iT邦高手 4 級 ‧ 2018-08-14 15:10:23
最佳解答

那在加個判斷應該就可以了~

SELECT TOP 8 M_DateTime ,A515V ,A515S  
FROM dbo.P1234567_Hr_2018 
WHERE DP_NO = 'A006'
and A515S = '010'
ORDER BY M_DateTime DESC;

或者是

SELECT TOP 8 M_DateTime ,A515V ,A515S  
FROM dbo.P1234567_Hr_2018 
WHERE DP_NO = 'A006'
and not A515S between '031' and '038'
ORDER BY M_DateTime DESC;
看更多先前的回應...收起先前的回應...
ted8224 iT邦新手 5 級 ‧ 2018-08-14 15:15:56 檢舉

/images/emoticon/emoticon08.gif

謝謝大大

ted8224 iT邦新手 5 級 ‧ 2018-08-16 14:14:43 檢舉

謝謝大大我發現排除,兩個 用您的 between ,當排除多個時候為..

SELECT TOP 8 M_DateTime ,A515V ,A515S  
FROM dbo.P1234567_Hr_2018 
WHERE DP_NO = 'A006'
and not A515S   IN  ( '020','021','026','031','038','030','035','M20','M21','M26','M31','M38','M30','M35')

/images/emoticon/emoticon08.gif

亂找發現的..哈~

ted8224
哈~那個是指定排除~
我前面兩個是
一個是指定那個標示顯示~
一個是標示範圍排除~

ted8224 iT邦新手 5 級 ‧ 2018-08-17 08:24:58 檢舉

純真的人
恩恩 3Q~ /images/emoticon/emoticon25.gif

0
fuzzylee1688
iT邦新手 4 級 ‧ 2018-08-14 15:13:40

參考看看.
WITH mQuery AS (
SELECT M_DateTime ,A515V ,A515S,
ROW_NUMBER() OVER (ORDER BY M_DateTime DESC) AS ROW_NUM
FROM dbo.P1234567_Hr_2018 A
WHERE DP_NO = 'A006'
AND A515S NOT IN ('031', ..... , '038')
)
SELECT *
FROM mQuery
WHERE ROW_NUM <=8

ted8224 iT邦新手 5 級 ‧ 2018-08-14 15:22:08 檢舉

我有試上面大大的方法,不過謝謝大大回復/images/emoticon/emoticon08.gif

我要發表回答

立即登入回答