更新然后替换文本字符串的一部分

时间:2019-04-02 22:32:54

标签: sql sql-server

我有一个患者横幅,其中包含一个文本字段,我想与该患者最近一年看得最多的提供商进行更新。我已经有了一个查询,可以将其添加到横幅中,但是当提供程序更改时,我遇到了更新横幅的问题。文本字段具有其他需要保留的信息才能更新。该字段当前显示“”。我们大约有6个不同的提供商,但是全年都可以更改。

如何设置查询以将旧字符串替换为更新的主提供程序?有什么方法可以随着主要提供者的变更或雇用新提供者而动态地做到这一点?

通过嵌套replace函数来覆盖所有可能的提供程序以替换为空值,然后进行另一个更新以添加新的提供程序,是最好的方法吗?

UPDATE 
    #PatientProfile
SET 
    ProfileNotes = ISNULL(rp.ResponsibleProvider+CHAR(10)+pp.ProfileNotes, rp.ResponsibleProvider)
FROM #PatientProfile pp
    INNER JOIN #Responsibleprovider rp ON pp.PatientProfileId = rp.OwnerId

这是我当前的更新功能。 ProfileNotes是提供者和其他注释的存储位置。我当时想我可以先运行以下脚本,然后再运行上面的脚本,并在新提供程序出现时更新脚本。

UPDATE
    #PatientProfile
SET 
    REPLACE(REPLACE(PatientNotes, 'Primary Provider: [Provider1]', ''), 'Primary Provider: [Provider2], '')...etc

希望这将导致以前的主要提供者的删除,并用新的提供者对其进行更新。我唯一担心的是每次也要添加一个新的换行符,所以我想我可以删除它。

0 个答案:

没有答案