这是我的Sql Fiddle with Schema and Data。我编写的SQL Query工作正常并返回数据。
http://sqlfiddle.com/#!6/bcf65/4
但令人困惑的是为什么我有"空间"当我在表格中插入数据时从未创建过。 例如从查询中查看此部分代码:
(SUBSTRING
(
[xml]
,CHARINDEX('P',[xml]) + 3
,LEN([xml])-8
)
在SubString
函数中的我必须删除一些空格才能得到结果LEN([xml])-8
。
让我们假设两种情况:(两者都来自SQL Fiddle插入查询)
我有一行数据177PKR3572427992899
。它的总长度是' 19。所以在上面使用的SubString函数中,它的起始位置是7
,即在3
之后的R
,并且为了在跳过最后2位数时得到它的长度,Len()
函数应该是Len(xml)-1
。但是,相反,我必须使用-8
跳过最后2位数。从这个空间来自哪里,我真的很困惑?让我们现在看第二个。
我有一行数据0PKR101
。它的总长度为' 7'。所以在SQL小提琴中的SubString函数中,它的起始位置是4
,即1
在数据中R
之后,为了在跳过最后2位数时得到它的长度,Len()
函数应该是Len(xml)-1
。但是,我必须在这里使用-6
来跳过最后2位数字。我怎样才能使它像len(xml)-1
一样工作..