SQL Server 2008选择特定字符的串联和左侧
下面的代码将一系列文本连接到一个字段。此查询中的每个命中都有一个SQL Server 2008选择特定字符的串联和左侧,sql,sql-server,sql-server-2008,Sql,Sql Server,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(
^
后面的数据。我只想显示^
的每一个左边,而不是^
本身。这可能吗
这是我的密码
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
如蒙协助,将不胜感激
-尼克不确定你的意思是说每个
cddesc
都是^something'
或'something^'
删除第一个或最后一个字符的方法:
选择子字符串('abcdef',28000)
='bcdef'
选择子字符串('abcdef',1,len('abcdef')-1)
='abcde'
或如果处于中间
选择子字符串('ab^cd',CharIndex('^','ab^cd')+18000)
='cd'
选择子字符串('ab^cd',1,CharIndex('^','ab^cd')-1)
='ab'
那么是这样的吗
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));
导致:
这是
a test
示例cddesc:这是一个完整的描述,作为一个字符串连接在一起,有很多细节^下面是胡萝卜之后的一些信息,我不想在结果中显示。我在这些优秀的示例中了解了子字符串和CHARINDEX的工作原理。我在当前的SELECT CAST(CAST(data))等查询中遇到了一个问题,即在哪里放置它。您可以将它放置在列、完整的SELECT语句、CAST或任何其他返回字符串类型值的内容周围。没有您的数据库模式,也没有对您的意图的准确理解,因此很难给您一个准确的答案。