2014-09-30 76 views
0

我想創建一個查詢,輸出(1)值(2)值是否存在或不存在。我試過輸出值和它是否存在SQL Server 2008數據庫

SELECT CASE WHEN EXISTS (
    SELECT [IP_ADDR1_TEXT] 
    FROM [dbo].[V_SEM_COMPUTER] 
    WHERE [IP_ADDR1_TEXT] = '10.10.10.10' 
) , [IP_ADDR1_TEXT] 
THEN CAST(1 AS BIT) 
ELSE CAST(0 AS BIT) END 

而且我得到錯誤。謝謝。

澄清

當我嘗試

SELECT CASE WHEN EXISTS (
    SELECT [IP_ADDR1_TEXT] 
    FROM [dbo].[V_SEM_COMPUTER] 
    WHERE [IP_ADDR1_TEXT] = '10.10.10.10' 
) 
THEN CAST(1 AS BIT) 
ELSE CAST(0 AS BIT) END 

它僅輸出1或0。我想它要輸出的IP地址,和1或0,這取決於它是否存在。

IP Address EXISTS 
10.10.10.10 1 

回答

1

這應該做的工作

SELECT 
CASE WHEN COUNT(distinct [IP_ADDR1_TEXT]) > 0 THEN CAST(1 AS BIT) 
ELSE CAST(0 AS BIT) END AS Some_blah 
    FROM [dbo].[V_SEM_COMPUTER] 
    WHERE [IP_ADDR1_TEXT] = '10.10.10.10' 

你已經嘗試過什麼,也能發揮作用。只需提及CASE之前的表格如下

SELECT [IP_ADDR1_TEXT], 
    CASE WHEN EXISTS (
    SELECT [IP_ADDR1_TEXT] 
    FROM [dbo].[V_SEM_COMPUTER] 
    WHERE [IP_ADDR1_TEXT] = '10.10.10.10' 
) 
THEN CAST(1 AS BIT) 
ELSE CAST(0 AS BIT) END 
FROM [dbo].[V_SEM_COMPUTER] 
WHERE [IP_ADDR1_TEXT] = '10.10.10.10' 
0

這是一個簡單的方法來做到這一點。

SELECT cast(count([IP_ADDR1_TEXT]) as bit) as IP_Exists 
FROM [dbo].[V_SEM_COMPUTER] 
WHERE [IP_ADDR1_TEXT] = '10.10.10.10' 
相關問題