2011-03-03 82 views
1

您好我想知道如果我可以的,如果在下面的查詢語句中使用..我可以在此查詢中使用IF語句嗎?

select * from Table 
Where Field1 = 'john' and 
if Field2 = 'Mike' 
Then(dbo.StateId(gp.SiD) Like '%' + @StateName +'%')) 
Else Nothing** 

感謝

+0

是的,你可以使用,在SQL查詢,但是查詢的語法statments可以依賴的數據庫(MySQL和甲骨文,...)。 – ssoler 2011-03-03 15:24:20

+0

@ssoler - 我認爲是SQL服務器(來自'dbo.') – 2011-03-03 15:25:26

回答

2

號工作

SELECT * 
FROM Table 
WHERE Field1 = 'john' 
     AND (Field2 <> 'Mike' 
       OR dbo.StateId(gp.SiD) LIKE '%' + @StateName + '%') 

(您的示例代碼不會向我明確什麼應該h澳鵬如果Field2NULL

+0

正確答案是'yes'。雖然你指出這是沒有必要的。 – mellamokb 2011-03-03 15:27:24

+0

@mellamokb - 不是在SQL Server中,它不是。 'IF'是一個控制結構流,不能用於查詢。 – 2011-03-03 15:29:50

+0

我認爲@ ssoler的評論更有幫助......從技術上講,你不能使用確切的'IF'語法,但是你可以在SQL查詢中使用這個概念。 – mellamokb 2011-03-03 16:06:11

0
select * 
    from Table 
    Where Field1 = 'john' 
    and case when Field2 = 'Mike' 
      Then (dbo.StateId(gp.SiD) Like '%' + @StateName +'%')) 
      Else (true or false based on inclusion) end 
相關問題