我下面的 t-sql 只有在输入参数中有一个哈希符号时才有效。
如何将其更改为以便我可以获得第二个哈希符号之后的值?
我想我需要结合使用 REVERSE
和 RIGHT
但我想不通。
DECLARE @SEAL_SECURITY3 As Varchar(50); SET @SEAL_SECURITY3 = NULL;
DECLARE @SEAL_SECURITY As Varchar(50); SET @SEAL_SECURITY = 'MS-7#MS-8#MS-9'
SET @SEAL_SECURITY3 = CASE WHEN CHARINDEX('#', @SEAL_SECURITY) = 0 THEN NULL
ELSE SUBSTRING(@SEAL_SECURITY, CHARINDEX('#', @SEAL_SECURITY) + 1, LEN(@SEAL_SECURITY) - CHARINDEX('#', @SEAL_SECURITY) + 1)
END
SELECT @SEAL_SECURITY3
结果是 MS-8#MS-9
期望的结果是 MS-9
更新
是否可以通过更改 SET ELSE
block 而不是 SELECT
语句来获得所需的结果?
最佳答案
如果您使用的是 SQL SERVER 并且在您的字符串中,#
的计数总是小于等于 4,那么下面的脚本将有助于获得所需的结果
SELECT PARSENAME(REPLACE(@SEAL_SECURITY,'#','.'),1)
关于sql - 如何在输入参数中的第二个哈希后获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47330163/