0
我在我的數據庫中的列有看起來像XYZ-13-1234-12345-6789-1查找秒鐘後字符字符串中使用T-SQL
我想現場連字符最後位置返回字符串XY-6789-1,所以我消除了13-1234-12345。我知道如何使用SUBSTRING獲取第一個字符,並使用SUBSTRING(RTRIM(myString),LEN(myString),1)獲得最後一個字符。
我試過使用REVERSE,但它向後返回數字,所以而不是得到6789我得到9876,這將無法正常工作。
這是我到目前爲止所瞭解到的......它完美的工作,但它看起來很糟糕!
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
嗨喬迪,問題的一部分是,我不會總是有一個固定的金額在第一或最後一節。即使在一個字符串中有'XYZABC',而另一個字符串中有'XY',我也只需要'XY'。這是討厭的,但我知道了....看到上面。 – user2146538 2013-03-08 01:44:32
我更新了我的原始答案。你可能會發現這個解決方案不那麼複雜。 – JodyT 2013-03-08 02:00:05