SQL 通过减去另外两个字符串列创建新的字符串列

SQL create new string column by substracting two other string columns

我正在尝试通过减去另外两列 NameVer 和 Ver 来创建一个新列。基本上,输出的值应该是 Name - Ver,例如Adam Philips-10021 - 10021 = Adam Philips(我还需要 Ver 删除前的最后一个破折号)。

我有一个关注 table:

NameVer Ver
Dr. Cristine Pharrel HF-10021 10021
Mary-2Jane Jean-CF2331 CF2331
Michael 1772 d'Oro-1027763 1027763

我想要实现的是这个table:

NameVer Ver Name
Dr. Cristine Pharrel HF-10021 10021 Dr. Cristine Pharrel HF
Mary-2Jane Jean-CF2331 CF2331 Mary-2Jane Jean
Michael 1772 d'Oro-1027763 1027763 Michael 1772 d'Oro

大家看到的字符串由各种字符组成,有时破折号不仅出现在Ver部分之前,而且出现在中间的某个地方。此外,我发现两列中的某些字符串在可见字符之外还有空格。

我试过使用以下代码:

SELECT SUBSTRING(NameVer, 1, LEN(Ver)+1)
from myTable

不幸的是,我得到的不是 Dr. Cristine Pharrel HF Dr. Cr

我们可以在这里尝试使用普通 REPLACE

SELECT
    NameVer,
    Ver,
    REPLACE(NameVer, '-' + Ver, '') AS Name
FROM myTable;

Demo

您可以使用以下方法完成:

SELECT SUBSTRING(NameVer,1, LEN(NameVer) - LEN(Ver) -1)
FROM myTable