2016-01-21 160 views
0

我試圖找出爲什麼我得到這個錯誤MSSQL 2012附近有語法錯誤「>」

附近有語法錯誤「>」

我比較2個整數和甚至當我用最簡單的形式,我仍然得到錯誤信息

select 1 >= 0 

select cast(1 as int) >= cast(0 as int) 

是否有需要設置爲可以使用大於或等於的配置?

+0

請檢查'CASE WHEN'和'WHERE'語法 – Devart

+1

您希望這個返回什麼? SQL Server沒有布爾類型(儘管'BIT'通常是作爲選擇的) – DavidG

+0

我期待1或0的位,但似乎我不會得到它。 – freddoo

回答

2
SELECT IIF(1 >= 0, 'YES', 'NO') -- 2012+ 

SELECT CASE WHEN 1 >= 0 THEN 'YES' ELSE 'NO' END 

IF 1 >= 0 
    SELECT 'YES' 
ELSE 
    SELECT 'NO' 
+0

我確實找到了這個'解決方法',但我試圖不使用IIF,爲什麼它在IIF中工作,而不是在代碼中,它仍然返回一個布爾值供IIF評估。 – freddoo

+2

您無法選擇比較。您只能選擇某種類型的值。計算結果,列,表達式,但不是比較。儘管在許多編碼語言中,您會將它看作是TRUE或FALSE的值,但在SQL中並非如此。您必須親自評估比較,然後選擇值。這就是Devart的方法運作的原因。 –

+0

這將解釋爲什麼它在where子句中起作用,但如果它不能被選中,我將使用IIF – freddoo