0

一連のテキストを 1 つのフィールドに連結する次のコードがあります。このクエリの各ヒットには、^. それ自体^ではなく、すべての 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 に答える