首页 > 解决方案 > 如何使用sql从不同长度的字符串中删除一个字符?系统间缓存sql

问题描述

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

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

任何建议将不胜感激!!!

标签: sqlstring-formattingintersystems-cache

解决方案


假设&符号始终定位为前导字符和尾随字符,这至少可能是一个开始。使用SUBSTR(或SUBSTRING,如果使用流数据)和的组合LENGTH,如下所示:

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

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

如果您需要包含尾随空格和/或字符串终止字符,您可能需要使用该LENGTH函数的不同变体。有关这些函数及其变体的详细信息,请参阅资源:

https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=RSQL_substr

https://cedocs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=RSQL_length


推荐阅读