Sql Server拆分和连接

我在sql server数据库表中有以下格式的数据
[CPOID]  [ContractPO]        [ContractPOTitle]
1        10-SUP-CN-CNP-0001  Drytech
2        10-SUP-CN-CNP-0002  EC&M
我需要编写一个存储过程来生成以下结果
[CPOID]      [ContractPO]        [ContractPOTitle]   [ConcatField]
    1        10-SUP-CN-CNP-0001  Drytech            CNP-0001-Drytech            
    2        10-SUP-CN-CNP-0002  EC&M               CNP-0002-EC&M
其中[ConcatField]使用拆分[ContractPOTitle]列的最后两个值并与[ContractPOTitle]结合生成结果     
已邀请:
如果ContractPO字段的长度始终相同,您可以这样做:
SELECT 
    CPOID, 
    ContractPO, 
    ContractPOTitle, 
    RIGHT(ContractPO, 8) + '-' + ContractPOTitle as [ConcatField]
FROM MyTable
假设ContractPO字段的长度没有修复,我们必须依赖于在倒数第二个“ - ”之后删除文本,以下SQL将起作用。它有点难看,但这些类型的操作是必要的,因为在SQL Server中似乎没有可用的LASTINDEX函数。
SELECT 
    CPOID, 
    ContractPO, 
    ContractPOTitle, 
    RIGHT(ContractPO, CHARINDEX('-', REVERSE(ContractPO), CHARINDEX('-', REVERSE(ContractPO)) + 1) - 1) + '-' + ContractPOTitle as [ConcatField]
FROM @myTable
    

要回复问题请先登录注册