【发布时间】:2017-05-13 13:07:10
【问题描述】:
这是我如何使用 ISNULL 条件来检查学生地址。 它工作正常,但 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
【问题讨论】:
-
您是在问第二次选择是否只有在第一次选择返回 null 时才会发生?顺便说一句,选择不带 ORDER BY 子句的 TOP 1 实际上意味着您将获得一条随机记录,因为不保证不带 ORDER BY 子句的返回行的顺序。
-
if first value is not null Isnull 不会检查第二个条件里面的内容??
标签: sql-server aggregate-functions isnull