输出值和它是否存在SQL Server 2008数据库
问题描述:
我想创建一个查询,输出(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
答
这应该做的工作
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'
答
这是一个简单的方法来做到这一点。
SELECT cast(count([IP_ADDR1_TEXT]) as bit) as IP_Exists
FROM [dbo].[V_SEM_COMPUTER]
WHERE [IP_ADDR1_TEXT] = '10.10.10.10'