如何使用 sql 从不同长度的字符串中删除一个字符?系统间缓存 sql
How do I remove a character from strings of different lengths with sql? Intersystems cache sql
我有一列字符串,每个字符串的开头和结尾都有一个“&”,我需要为正在创建的 Crystal 报告删除这些字符串。我正在 Crystal 之外编写 SQL 代码 我正在使用 Intersystems Cache SQL。下面是一个例子:
&This& This
&is& is
&What& what
&it& I
&looks& need
&like& it
&now& to
look
like
如有任何建议,我们将不胜感激!!!
假设 & 符号始终定位为前导字符和尾随字符,这至少是一个开始。使用 SUBSTR
(或 SUBSTRING
,如果使用流数据)和 LENGTH
的组合,如下所示:
SELECT SUBSTR((SELECT column FROM table), 2, LENGTH(SELECT column FROM table) - 2)
这应该 return 一个从第 2 个字符开始计数的子字符串 [原始字符串的第一个 sub-expression/argument 到 SUBSTR
],向上计数为总数[原始字符串] 的字符数减去 2(即减去两个与号)。
如果您需要在字符串终止字符中包含尾随空格 and/or,您可能需要使用 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
下面是一个 Crystal 公式,它的作用相同:
ExtractString({YourData},"&","&")
我有一列字符串,每个字符串的开头和结尾都有一个“&”,我需要为正在创建的 Crystal 报告删除这些字符串。我正在 Crystal 之外编写 SQL 代码 我正在使用 Intersystems Cache SQL。下面是一个例子:
&This& This
&is& is
&What& what
&it& I
&looks& need
&like& it
&now& to
look
like
如有任何建议,我们将不胜感激!!!
假设 & 符号始终定位为前导字符和尾随字符,这至少是一个开始。使用 SUBSTR
(或 SUBSTRING
,如果使用流数据)和 LENGTH
的组合,如下所示:
SELECT SUBSTR((SELECT column FROM table), 2, LENGTH(SELECT column FROM table) - 2)
这应该 return 一个从第 2 个字符开始计数的子字符串 [原始字符串的第一个 sub-expression/argument 到 SUBSTR
],向上计数为总数[原始字符串] 的字符数减去 2(即减去两个与号)。
如果您需要在字符串终止字符中包含尾随空格 and/or,您可能需要使用 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
下面是一个 Crystal 公式,它的作用相同:
ExtractString({YourData},"&","&")