我这样有表中的数据。如果;最后我想用空字符串代替,如果不是,我会以同样的方式保留数据。
abc;
123;ghi;789
test123;
thisowns;
wer;567;457;test
结果应为
abc
123;ghi;789
test123
thisowns
wer;567;457;test
答案 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) = ';'
希望这有帮助!