SQL:当我的初始table.field=NULL时,是否有方法调用另一个table.field?

SQL:当我的初始table.field=NULL时,是否有方法调用另一个table.field?,sql,sql-null,Sql,Sql Null,大家早上好!基本上,我发现我想要使用的潜在table.field可能没有我想要的信息,因此,我可能需要查看一个单独的字段。我下面的思考过程是: If table.field1 = NULL then pull the value from table.field2. If table.field2 = NULL then state "No Phone" 我在select中的当前SQL语句,因为它采用特定格式,是: 子串(查看集摘要当前.患者家庭电话,1,3)|

大家早上好!基本上,我发现我想要使用的潜在table.field可能没有我想要的信息,因此,我可能需要查看一个单独的字段。我下面的思考过程是:

If table.field1 = NULL then pull the value from table.field2. If table.field2 = NULL then state "No Phone"
我在select中的当前SQL语句,因为它采用特定格式,是:

子串(查看集摘要当前.患者家庭电话,1,3)| |“”|子串(查看集摘要当前.患者家庭电话,5,8)

上面是表1。我想我需要创建一个案例陈述,对吗?我只是不知道要多久

(case when view_episode_summary_current.patient_home_phone = NULL then table.field2)

但是我不知道如何让它计算table.field2是否为null并显示值。

在许多数据库中,您可以使用
coalesce()
来实现这种逻辑:

coalesce(t1.field1, t2.field2) as myfield
coalesce()
返回其参数中的第一个非空值。因此,如果它不是
null
,它将为您提供
t1.field1
,否则它将返回
t2.field2
。如果两者都是
null
,则会得到一个
null

您还可以使用
case
表达式-与
colaesce()
相比没有任何好处,但这可以处理比空性检查更复杂的情况

case
    when t1.field1 is not null then t1.field1
    when t2.field2 is not null then t2.field2
end as myfield
案例
在满足条件的第一个分支上停止。如果没有分支匹配,它将返回
null
——您可以在代码末尾放置
else
分支以返回其他内容

请注意,这两种技术都要求两个字段具有相似的数据类型


您没有显示实际查询,因此我无法在您的代码中显示如何使用该查询。

GMB,谢谢!下面是我的实际查询:首先选择view_Spidence_summary_current.patient_name_substring(view_Spidence_summary_current.patient_home_phone,1,3)| | | | | substring(view_Spidence_summary_current.patient_home_phone,5,8),转换(varchar(10),转换(约会日期为日期),转换(时间,约会开始时间)为“约会状态时间”,左(员工姓名,charindex(',,员工姓名)-1)为“系统”中的“员工姓氏”,“应用数据”,“系统”,“查看当前事件摘要”…有何建议?