SQL:当我的初始table.field=NULL时,是否有方法调用另一个table.field?
大家早上好!基本上,我发现我想要使用的潜在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)|
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)为“系统”中的“员工姓氏”,“应用数据”,“系统”,“查看当前事件摘要”…有何建议?