替换sql列中的最后一个字符

时间:2017-03-30 14:51:43

标签: sql sql-server tsql

我这样有表中的数据。如果;最后我想用空字符串代替,如果不是,我会以同样的方式保留数据。

abc;
123;ghi;789
test123;
thisowns;
wer;567;457;test

结果应为

abc
123;ghi;789
test123
thisowns
wer;567;457;test

4 个答案:

答案 0 :(得分:0)

你可以这样做:

select (case when col like '%;' then left(col, len(col) - 1) else col end)

答案 1 :(得分:0)

您可以使用RIGHT()功能

case when RIGHT(col1, 1) = ';' then LEFT(col1, LEN(col1) - 1) end

答案 2 :(得分:0)

希望这有帮助。

;WITH cte_TestData (String)
AS
(
SELECT 'abc;' UNION ALL
SELECT '123;ghi;789' UNION ALL
SELECT 'test123;' UNION ALL
SELECT 'thisowns;' UNION ALL
SELECT 'wer;567;457;test'
)
SELECT CASE 
        WHEN RIGHT(String, 1) = ';'
            AND LEN(String) >= 1
            THEN SUBSTRING(String, 1, LEN(String) - 1)
        ELSE String
        END
FROM cte_TestData

答案 3 :(得分:0)

试试这个:

UPDATE <YOUR_TABLE> 
SET col1 = LEFT(col1, LEN(col1) - 1)
WHERE RIGHT(col1, 1) = ';'

希望这有帮助!