我得到下面的異常時,我運行查詢:其中條件預計在上下文指定的非布爾類型的表達式,在SQL服務器附近
SELECT * FROM (SELECT ROW_NUMBER() OVER (ORDER BY (SELECT 0)) AS ROW_NUM_VAL, CASE WHEN ingest_table.[OVER]_RAN BETWEEN '10' AND '12' THEN 'F' ELSE 'P' END [OVER]_STATUS FROM(SELECT [OVER] AS [OVER]_RAN FROM S_3000_7_vt)ingest_table)rgtt WHERE [OVER]_STATUS = 'F'
例外:
com.microsoft.sqlserver.jdbc.SQLServerException: 表示在期望條件的上下文中指定的非布爾類型, 靠近'_RAN'。
我該如何解決這個問題?
我不確定除了顯然通過JDBC執行查詢之外,Java是如何涉及的。除此之外,我假設'[OVER] _RAN'是問題。我不太瞭解SQL Server,所以我不知道'[OVER]'是什麼意思,但我會認爲它不符合你的期望。 – Thomas
另一件可能成爲問題的事情是:我會說在'... ELSE'P'END [OVER] _STATUS FROM ...'中的'END'和'[OVER] _STATUS'之間缺少一個逗號。您是否嘗試直接在數據庫上執行該查詢,即通過使用某個本機客戶端? – Thomas
sql server有一個關鍵字OVER子句,所以在這個查詢中'SELECT [OVER] AS [OVER] _RAN FROM S_3000_7_vt',OVER是表的列名,如果我給SELECT OVER AS OVER_RAN FROM S_3000_7_vt)它將OVER視爲子句@Thomas – vm101