删除TSQL中字符串的前缀

删除TSQL中字符串的前缀,sql,sql-server,tsql,Sql,Sql Server,Tsql,所以我有两个专栏。一个包含一个前缀(nvarchar),下一个包含一个nvarchar,我想从中删除这个前缀,我们将把这个列命名为“words”。正常情况下,对(单词,len(单词)-len(前缀)会得到这个答案。但是,假设单词开头有两个空格,前缀是一个空格。因此,我尝试从单词开头删除一个空格。len(前缀)将返回0。datalength(前缀)将返回1,但由于某些字符占用2字节,我不认为datalength是答案。尝试以下方法: RIGHT(words, LEN(words) - (LEN(p

所以我有两个专栏。一个包含一个前缀(nvarchar),下一个包含一个nvarchar,我想从中删除这个前缀,我们将把这个列命名为“words”。正常情况下,
对(单词,len(单词)-len(前缀)
会得到这个答案。但是,假设单词开头有两个空格,前缀是一个空格。因此,我尝试从单词开头删除一个空格。len(前缀)将返回0。datalength(前缀)将返回1,但由于某些字符占用2字节,我不认为datalength是答案。

尝试以下方法:

RIGHT(words, LEN(words) - (LEN(prefix+'?')-1))
编辑:

也许你会发现这个“清洁剂”:

如果CHARINDEX(前缀,单词)=1,则为RIGHT(单词,LEN(单词)-LEN(前缀)),否则单词结束

这确保前缀从单词的开头开始,而不是从单词的中间或任何地方开始

RIGHT(words, LEN(words) - DATALENGTH(CONVERT(VARCHAR(100),prefix)))