一尘不染

仅删除前导或尾随的回车

sql

我不知道这个问题还没有被有意义地问到。如何在SQL中创建等效函数,例如仅在字符串的开头或结尾处为回车LTRIMRTRIM换行而创建等价函数。

显然REPLACE(REPLACE(@MyString,char(10),''),char(13),'')删除所有回车和换行符。这不是我想要的。我只想删除前导或尾随的。


阅读 166

收藏
2021-03-17

共1个答案

一尘不染

查找 不是 CHAR(13)或的第一个字符,CHAR(10)并从字符串的长度中减去其位置。

LTRIM()

SELECT RIGHT(@MyString,LEN(@MyString)-PATINDEX('%[^'+CHAR(13)+CHAR(10)+']%',@MyString)+1)

RTRIM()

SELECT LEFT(@MyString,LEN(@MyString)-PATINDEX('%[^'+CHAR(13)+CHAR(10)+']%',REVERSE(@MyString))+1)
2021-03-17