我有以下代码将一系列文本连接到一个字段。此查询中的每次匹配都包含^
之后的数据。我只想显示^
的每个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
非常感谢任何帮助。
-Nick
答案 0 :(得分: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'
答案 1 :(得分: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