如何用 sql 从不同长度的字符串中删除一个字符?Intersystems 缓存 sql

问题描述 投票:0回答:2

我有一列字符串,每一个字符串的开头和结尾都有一个'&',我需要为我正在创建的Crystal报表删除。我在Crystal之外编写SQL代码,我使用Intersystems Cache SQL。下面是一个例子。

&This&         This
&is&           is
&What&         what
&it&           I
&looks&        need
&like&         it
&now&          to
               look
               like

任何建议都将是非常感激的!

sql string-formatting intersystems-cache
2个回答
1
投票

假设安培符总是被定位为前导字符和尾部字符,这里至少可能是一个开始。使用以下组合 SUBSTR (或 SUBSTRING如果使用流数据)和 LENGTH,就像这样。

SELECT SUBSTR((SELECT column FROM table), 2, LENGTH(SELECT column FROM table) - 2)

这应该返回一个子串,从[原始字符串的]第2个字符开始计数,由第一个子表达式参数给定 SUBSTR],算出[原始字符串]的总字符数减去2(即减去两个安括号)。

如果您需要包含尾部的空白或字符串终止字符,您可能需要使用不同类型的 LENGTH 函数。有关这些函数及其变体的详细信息,请参见资源。

https:/docs.intersystems.comirislatestcspdocbookDocBook.UI.Page.cls?KEY=RSQL_substr。

https:/cedocs.intersystems.comlatestcspdocbookDocBook.UI.Page.cls?KEY=RSQL_length。


0
投票

这里有一个水晶配方,也有同样的作用。

ExtractString({YourData},"&","&")
© www.soinside.com 2019 - 2024. All rights reserved.