我的数据库中有一个列,其字段看起来像 XYZ-13-1234-12345-6789-1
我想返回字符串 XY-6789-1,所以我要删除 13-1234-12345。
我知道如何使用 SUBSTRING 来获取第一个字符,并且我使用 SUBSTRING(RTRIM(myString), LEN(myString), 1) 来获取最后一个字符。
我尝试使用 REVERSE,但它会向后返回数字,所以我得到 9876 而不是得到 6789,这不起作用。
这是我到目前为止所想出的……它工作得很好,但看起来很糟糕!
SUBSTRING(LTRIM(RTRIM(myString)), 1, 2) + '-' + REVERSE(SUBSTRING(REVERSE(LTRIM(RTRIM(myString))), (CONVERT(INT, CHARINDEX('-', REVERSE(LTRIM(RTRIM(myString))))) + 1), CONVERT(INT, CHARINDEX('-', (SUBSTRING(REVERSE(LTRIM(RTRIM(myString))), (CONVERT(INT, CHARINDEX('-', REVERSE(LTRIM(RTRIM(myString))))) + 1), LEN(myString))))) - 1)) + '-' + SUBSTRING(LTRIM(RTRIM(myString)), LEN(myString), 1) AS NewColumnFormat