Sql server 2005 与可能的空字段合并-SQL Server 2005

Sql server 2005 与可能的空字段合并-SQL Server 2005,sql-server-2005,coalesce,Sql Server 2005,Coalesce,问题是:当患者来到医生的办公室时,他们可以测量三次血压。第一次是bp1;第二次是bp2,最后一次是bp3 我需要找出病人最后一次检查血压的时间和内容。我想我可以用聚结BP3,bp2,bp1。然而系统并不总是将未使用的字段设置为空。有时候,它们是空的 数据的一个例子是: PatientID bp1 bp2 bp3 12345 140/90 134/30 12346空128/68空 然后,我想我应该使用COALESCENULLIFbp3,bp2,bp1,但这不起作用,因为有时候数据库显示bp1

问题是:当患者来到医生的办公室时,他们可以测量三次血压。第一次是bp1;第二次是bp2,最后一次是bp3

我需要找出病人最后一次检查血压的时间和内容。我想我可以用聚结BP3,bp2,bp1。然而系统并不总是将未使用的字段设置为空。有时候,它们是空的

数据的一个例子是:

PatientID bp1 bp2 bp3 12345 140/90 134/30 12346空128/68空

然后,我想我应该使用COALESCENULLIFbp3,bp2,bp1,但这不起作用,因为有时候数据库显示bp1为NULL,或者bp1和bp3为NULL,但bp2中有血压

有人知道如何解决这个问题吗


谢谢

这个案子怎么样?我不知道数据类型,所以我猜是INT

case when bp3 > 0 then bp3
     when bp2 > 0 then bp2
     else bp1
end as bp
对于字符串varchar数据类型

case when len(bp3) > 0 then bp3
     when len(bp2) > 0 then bp2
     else bp1
end as bp

要使COALESCE语句工作,您必须分别为每一列的null

例如:


请显示样本数据和所需结果。文字问题很难解决。
COASLESCE(NULLIF(bp3, 0), NULLIF(bp2, 0), NULLIF(bp1, 0))