所以对我们的系统有一点背景来解释事情。
我们的数据库是版本(可能大多数都是)。我们在数据库中有一个名为“DBVersion”的表。然而几个月前,我们迁移到了 liquibase。现在有一个 DATABASECHANGELOG 表。
不幸的是,就我们的数据库而言,我们是一家相当无组织的公司。所以我正在尝试编写一个视图,让我知道我们的客户使用的是什么版本。
老实说,我什至不知道从哪里开始。但我想我可以编写多个 CASE 语句来允许我这样做。我将使用 SP sp_msforeachdb 来运行视图。
SELECT
Case when id = '8.12' then '8.12'
End as Version
From DATABASECHANGELOG
Where id = '8.12'
我想做这样的事情:
CASE
WHEN (SELECT ID FROM DATABASECHANGELOG WHERE ID = '8.12' IF NULL CONTINUE)
WHEN (SELECT VERSION FROM DBVERSION, IF > 400 && < 425 THEN PRINT 'VERSION 8.7'
我知道上面的查询甚至不是在 SQL 中,但它给了你一个想法。我们的 Liquibase 版本是 8.10、8.11 和 8.12 以及所有未来版本。低于 8.10 的所有内容都使用 watson 版本,这将是一个简单的数字范围。
对不起,如果这太令人困惑了。