以下是我如何使用ISNULL条件检查学生地址。 它工作正常,但ISNULL函数如何处理空的编码,即第一个条件为空时显示的第二个参数。在SQL Server中执行ISNULL
当第一个条件不为空时它会计算第二个参数的值吗?
select
...
...
(CASE
WHEN st.ADDRESS='Y' THEN st.LOCATION
ELSE
ISNULL(
(SELECT TOP 1 STDLOC.LOCATION FROM STDLOC
INNER JOIN COMLOC ON STKLOC.LOCATION=COMLOC.CODE AND COMLOC.ADDRESS='Y'
WHERE STDLOC.ZIBCODE=st.ZIBCODE)
,(SELECT TOP 1 COMLOC.LOCATION FROM COMLOC COMLOC.ZIBCODE=st.ZIBCODE))
END
) AS STDUDENTLOCATION
FROM STUDENT st
你是问如果第二选择将仅在第一选择返回空发生的呢?顺便说一句,选择没有ORDER BY子句的TOP 1实际上意味着你将得到一个随机记录,因为不保证没有ORDER BY子句返回的行的顺序。 –
如果第一个值不为空Isnull不会检查第二个条件里面的内容? –