2016-10-31 28 views
0

嘗試選擇任何數據,其中BAD_PRD不等於'bad' 但它不會給出任何結果,當我沒有使用「BAD_PRD!='bad'」 或用「BAD_PRD爲空」 它給出結果,不知道我是否可以使用=這裏:選擇列不等於某個值的任何數據

select * FROM cte c WHERE rn = 1 and [BAD_PRD] != 'bad' 

感謝, 小號

+0

將'N'放在條件詞之前,比如'[BAD_PRD]!= N'bad''或者可以使用沒有百分號的'like',比如'[BAD_PRD]不像N'bad'' – Aria

+0

[BAD_PRD]! = N'bad'不起作用 –

+0

'不喜歡''怎麼樣? – Aria

回答

0

你可以申請像運營商的格局就像Select語句

select * FROM cte c WHERE rn = 1 and [BAD_PRD] NOT LIKE 'bad%' 

編輯之後評論:假設[BAD_PRD]列有空值。

select * FROM cte c WHERE rn = 1 and ([BAD_PRD] NOT LIKE 'bad%' OR [BAD_PRD] is null) 
+0

NOT LIKE'bad%'不起作用,相同的空結果。 –

0

試試這個:

where not (BAD_PRD= 'bad') 

select * FROM cte c WHERE rn = 1 and BAD_PRD not like 'bad' 

,如果您在使用Collate,使查詢區分大小寫並且從上面只檢索記錄不等於( '壞')查詢,查詢的排序規則需要更改如下:

select * FROM cte c WHERE rn = 1 and BAD_PRD != 'bad' COLLATE Latin1_General_CS_AS 

select * FROM cte c WHERE rn = 1 and [BAD_PRD] COLLATE Latin1_General_CS_AS != 'bad' 
+0

您是否嘗試過以上子句? – Aria

0

你是對的,你不能使用!=在這裏。 但是你至少有兩個選擇。 第一個問題是您在BAD_PRD列中確實存在「錯誤」值。

SELECT * 
FROM tblSomeTable 
WHERE (rn = 1) AND (BAD_PRD <> 'bad' OR BAD_PRD IS NULL) 

但是現在,如果你沒有準確地「壞」的價值,但類似「壞天熱」或「BADD」或「amrashbadda」。 對於那些你可以嘗試使用通過使用所謂的通配符工作的LIKE命令,在這種情況下'%'。

SELECT * 
FROM tblSomeTable 
WHERE (rn = 1) AND (BAD_PRD NOT LIKE '%bad%' OR BAD_PRD IS NULL) 

我在說的'%bla%'是它會在'bad'字符串前後找到零個或多個字符。如果您有興趣,可以閱讀更多LIKE here

如果你仍然有問題,我會嘗試檢查更簡單的查詢,看看我能得到什麼。這裏有一些。

SELECT * 
FROM tblSomeTable 
WHERE rn = 1; 

這是一個用來檢查你是否喜歡你的專欄。如果它顯示空的結果集,那麼你可以仔細檢查該列,因爲它可能不包含「壞」。

SELECT * 
FROM tblSomeTable 
WHERE BAD_PRD NOT LIKE '%bad%'; 
0

請試試這個 SELECT * FROM CTE C其中RN = 1,[BAD_PRD] <> '壞' 你會得到誰的Rn值等於1,[BAD_PRD]值除包含「壞的所有數據'

相關問題