2013-04-12 29 views
0

我有以下代碼連接到一個字段的一系列文本。此查詢中的每個匹配的數據都跟着^。我只想顯示^的每一個左邊,而不是^本身。這可能嗎?SQL Server 2008選擇連接和左特定字符

這裏是我的代碼...

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 

任何援助將不勝感激。

-Nick

回答

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'

+0

例cddesc:這是一個完整的說明級聯作爲一個字符串與相當多的細節。 ^這是胡蘿蔔後的一些信息,我不想在結果中顯示。 – user2208914

+0

更新了答案 –

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

+0

我得到了SUBSTRING和CHARINDEX在這些優秀示例中的工作原理。我遇到了一個問題,將它放在我當前的SELECT CAST(CAST(data))等etc查詢中。 – user2208914

+0

你可以把它放在一個列,一個完整的select語句,一個強制類型或其他任何返回字符串類型值的地方。沒有你的數據庫模式,也沒有你的意圖的確切理解,很難給你一個確切的答案。 – RThomas