2016-04-28 101 views
0

我有一個選擇命令,它工作得很好。從選擇命令中排除記錄

我想排除一個記錄,其中SchoolID =?

我該怎麼做?

SelectCommand="SELECT [School], [CenShort], [Center], [NameLevel], 
[Tuition_Tuition] FROM [ASchools] 
WHERE (([SectID] = ?) AND (([LevelNo] = ?) 
     OR ([LevelNo] = ?) OR ([LevelNo] = ?) OR ([LevelNo] = ?) 
     OR ([LevelNo] = ?)) AND (([TSchools_Tuition] = ?) OR ([TSchools_Tuition] = ?) 
     OR ([TSchools_Tuition] = ?)) AND ([Gender] = ?))"> 
+3

只需將它添加到你的'where'子句中,只有'SchoolID <>?' – HoneyBadger

+2

使用AND。 (順便說一句,你可以做[[LevelNo] IN(?,?,?...'而不是所有那些OR)。 – jarlh

+0

不要忘了Bobby Tables http://bobby-tables.com/ –

回答

0

試試這個

SelectCommand="SELECT [School], [CenShort], [Center], [NameLevel], 
[Tuition_Tuition] FROM [ASchools] 
WHERE (([SectID] = ?) AND (([LevelNo] = ?) 
     OR ([LevelNo] = ?) OR ([LevelNo] = ?) OR ([LevelNo] = ?) 
     OR ([LevelNo] = ?)) AND (([TSchools_Tuition] = ?) OR ([TSchools_Tuition] = ?) 
     OR ([TSchools_Tuition] = ?)) AND ([Gender] = ?) and school<>?)"> 
+0

謝謝Madhivanan您的回覆很有幫助 –

0

我會建議在附加條件附加到WHERE子句的末尾。還可以使用語法IN (valueA,valueB,valueC)使您的查詢更易於閱讀。

SelectCommand= 
@"SELECT [School], [CenShort], [Center], [NameLevel], [Tuition_Tuition] 
FROM [ASchools] 
WHERE [SectID] = ? 
    AND [LevelNo] in(?,?,?,?) 
    AND [TSchools_Tuition] in (?,?,?) 
    AND [Gender] = ? 
    AND [SchoolID] <> ?" 
+1

雖然此代碼可能回答此問題,但提供有關此代碼爲何和/或如何回答此問題的其他上下文可提高其長期價值。 – ryanyuyu

0

在SQL你也可以這樣做:

WHERE ... 
AND NOT SchoolID = ? 
0

如果SchoolID是您的主要搜索參數,那麼你就應該改革的where子句是這樣的:WHERE SchoolID <>?和(...你有的所有其他條件)。 因此,現在您的查詢將首先排除某些SchoolID的記錄,然後進一步處理其他條件。