gpt4 book ai didi

sql - 如何在 SQL Server 中使用预定义的特殊字符修剪字符串?

转载 作者:行者123 更新时间:2023-12-03 02:28:07 25 4
gpt4 key购买 nike

我想使用一些特殊字符来修剪 SQL Server 字符串,例如“Ù,.?!Ù,Ù,><=+ـ”。

SQL Server ltrim 和 rtrim 函数仅去除空格字符。

DECLARE @Str NVARCHAR(100) = N',,,,,!؛Computation+Time, Cost،,.?!؛,،,><=+ـ'
SELECT dbo.SpecialTrim(@Str, N'،,.?!؛,،,><=+ـ')

The result : Computation+Time, Cost

有人有任何想法来实现 SpecialTrim 功能吗?

最佳答案

下面对模式进行硬编码。

它查找第一个不是两端要排除的字符之一的字符。

为了使其动态化,您可以使用字符串连接来构建字符集(注意模式语法中包含特殊含义的字符)

WITH T(String) AS
(
SELECT 'Computation+Time, Cost،,.?!؛,،,><=+ـ' union all
SELECT ',,,,,!؛Computation+Time, Cost،,.?!؛,،,><=+ـ' union all
SELECT 'Computation+Time, Cost،,.?!؛,،,><=+ـ' union all
SELECT 'Computation+Time, Cost' union all
SELECT ''
)
SELECT SUBSTRING(String,Start,len(String) + 2 - Start - Finish)
FROM T
CROSS APPLY
(
SELECT PATINDEX('%[^،,.?!؛,،,><=+ـ]%' COLLATE Latin1_General_Bin,String),
PATINDEX('%[^،,.?!؛,،,><=+ـ]%' COLLATE Latin1_General_Bin,REVERSE(String))
)ca(Start, Finish)

关于sql - 如何在 SQL Server 中使用预定义的特殊字符修剪字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35485752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com