2013-10-09 125 views
0

所以我有两列。一个包含一个前缀(nvarchar),另一个包含一个nvarchar,我希望从中删除前缀,我们将命名该列的单词。通常去right(words, len(words) - len(prefix)会得到我的答案。然而,让我们假设词的开头有两个空格,前缀是单个空格。所以我试图从这个词的开头删除一个空格。 len(前缀)将返回0. datalength(前缀)将返回1,但由于某些字符需要2个字节,我不相信数据长度是答案。删除TSQL中字符串的前缀

回答

3

试试这个:

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

编辑:

可能你会发现这一个 “干净”:

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

我真的试图与此非常相似的东西,它的工作。谢谢。 – dko

+0

只是希望有一个更清洁,更易于阅读的解决方案。 – dko