替换或不替换

时间:2013-11-19 04:21:20

标签: sql sql-server replace str-replace

我试图在消息中换出给定的字符串但是我发现我的方法有很大的性能成本(见下文)。

SELECT  REPLACE(REPLACE(REPLACE(REPLACE(m.MessageDescription, '{{DeploymentDate}}', ISNULL(CONVERT(VARCHAR(30), d.ExpiryDate, 106), '')),
                                '{{EndOfMonthExpiryDate}}', CONVERT(VARCHAR(30), DATEADD(s, -1, DATEADD(mm, DATEDIFF(m, 0, GETDATE()) + 1, 0)), 120) + '.00'),
                        '{{ExpiryDays}}', ISNULL(CONVERT(VARCHAR(30), DATEDIFF(dd, GETDATE(), d.ApprovalExpiryDate)), '')), '{{TermEndDate}}',
                ISNULL(CONVERT(VARCHAR(30), d.term_end_date, 106), '')) ,
        REPLACE(REPLACE(REPLACE(REPLACE(m.MessageExpiryText, '{{DeploymentDate}}', ISNULL(CONVERT(VARCHAR(30), d.ApprovalExpiryDate, 106), '')),
                                '{{EndOfMonthExpiryDate}}', CONVERT(VARCHAR(30), DATEADD(s, -1, DATEADD(mm, DATEDIFF(m, 0, GETDATE()) + 1, 0)), 120) + '.00'),
                        '{{ExpiryDays}}', ISNULL(CONVERT(VARCHAR(30), DATEDIFF(dd, GETDATE(), d.ApprovalExpiryDate)), '')), '{{TermEndDate}}',
                ISNULL(CONVERT(VARCHAR(30), d.term_end_date, 106), ''))
FROM    AudienceMessages m
        INNER JOIN AudienceCommunication d ON d.mID = d.dID

我希望那里的某个人遇到过这个问题,并且找到了一个更好的方法来实现我想要实现的目标。

0 个答案:

没有答案