0

我有以下代码将一系列文本连接到一个字段。此查询中的每个命中都有数据跟随^。我只想显示 the 的每个 LEFT^而不是它^本身。这可能吗?

这是我的代码...

SELECT Cast(Cast(((SELECT *
   FROM   (SELECT(SELECT cddesc + ' ' AS [text()]
   FROM   costdesc
      WHERE  costdesc.cindex = c.cindex
      ORDER  BY cdline
      FOR xml path('')) AS cddesc) cddesc)) AS
   NVARCHAR(max)) AS NTEXT) AS cddesc

FROM Table
WHERE Blah blah

任何帮助将不胜感激。

-缺口

4

2 回答 2

0

不确定你的意思是每个cddesc'^something''something^'...

删除第一个或最后一个字符的方法:

select substring('abcdef',2,8000)= 'bcdef'
select substring('abcdef',1,len('abcdef')-1)='abcde'

或者如果它在中间

select substring('ab^cd',CharIndex('^', 'ab^cd')+1,8000)= 'cd'
select substring('ab^cd',1,CharIndex('^', 'ab^cd')-1)='ab'

于 2013-04-12T15:50:06.953 回答
0

所以像这样的东西?

DECLARE @TestString VARCHAR(100) = 'This is ^a test';

-- get everything to the left of ^   
SELECT SUBSTRING(@TestString,1,CHARINDEX('^', @TestString)-1);

-- get everything to the right of ^ 
SELECT SUBSTRING(@TestString,CHARINDEX('^', @TestString)+1,LEN(@TestSTring));  

导致:

This is

a test

于 2013-04-12T15:52:01.837 回答