2011-04-27 165 views
0

我在此查询附近等不同的说法简单的SQL查询

DECLARE @CNT INT 
SELECT @CNT= DISTINCT ISNULL(Employee.id,0) 
FROM Employee 
WHERE EMPLOYEE.NAME='KIRAN' 

不正确的语法得到一个错误,有什么不对的语法

SELECT DISTINCT ISNULL(Employee.id,0) 
FROM Employee 
WHERE EMPLOYEE.NAME='KIRAN' 

这个语句工作正常

谢谢 王子

回答

1

像这样的事情也许..

DECLARE @CNT INT 
SET @CNT = (SELECT DISTINCT ISNULL(Employee.id,0) 
FROM Employee 
WHERE EMPLOYEE.NAME='KIRAN') 
+0

如果内部查询返回多个行会发生什么? – 2011-04-27 09:15:14

+0

比你有问题..但这不是问题 – redrobot 2011-04-27 09:40:29

+0

查询返回相同的值,即使对于多个行值 – happysmile 2011-04-27 10:00:13

0

1.使用必须编写不同@CNT变量
2.select只有第一行之前,因为@cnt不表变量是变量,其类型是int

DECLARE @CNT INT 
SELECT top 1 @CNT= ISNULL(Employee.id,0) 
FROM Employee 
WHERE EMPLOYEE.NAME='KIRAN' 

你可以测试它只是

declare @CNT INT 

SELECT top 1 @CNT= ISNULL(Employee.id,0) 
FROM Employee 
WHERE EMPLOYEE.NAME='KIRAN' 

select @CNT