我需要类似@pyqtSlot(list)
def applyFilterOptions(self,filterOption):
print(filterOption)
函数的东西来删除字符串左侧或右侧的新行字符。
我无法使用以下代码:
TRIM
因为我在变量的中间有新行。我只需要删除开头或结尾位置的新行字符。
我被期望DECLARE @str nVarchar(MAX) = 'Hello' + CHAR(10) + 'World' + CHAR(10)
SET @str = REPLACE(REPLACE(@Str, CHAR(10), ''), CHAR(13), '')
函数执行此操作但我失败了。
你知道其他任何功能吗?
答案 0 :(得分:0)
如果换行符始终是最后一个字符,那么:
DECLARE @str nVarchar(MAX) = 'Hello' + CHAR(10) + 'World' + CHAR(10)
SELECT substring(@str,1,len(@str)-1)
如果它是你想要的最后一个字符串:
SELECT REVERSE(Reverse(Stuff(@str, CharIndex(CHAR(10),@str),1,'')))
答案 1 :(得分:0)
您可以使用的一种方法是,
DECLARE @str nVarchar(MAX) = CHAR(10) +'Hello' + CHAR(10) + 'World' + CHAR(10)
SELECT (CASE WHEN LEFT(@str,1) = CHAR(10) THEN '' ELSE LEFT(@str,1) END)
+ SUBSTRING(@str,2,LEN(@str)-2)
+ (CASE WHEN RIGHT(@str,1) = CHAR(10) THEN '' ELSE RIGHT(@str,1) END)
如果不是CHAR(10)
,请获取第一个字母
+从第二个字母到第二个字母获取子字母+如果它不是CHAR(10)
,则获取最后一个字母。
您可以将其创建为用户定义的函数。
答案 2 :(得分:0)
获取Microsoft提供的String Utility Functions,您将直接在T-SQL语句中获得正则表达式支持。
这可能看起来如此巨大(实现SQL CLR功能)来解决这么简单的任务,但请相信我,拥有这些功能会在很多情况下简化您的解决方案。