逗号 (,) 的 JSL 转义字符模式嗨,谁能告诉我如何从字符串中转义逗号 (,)。 我知道双引号 (") 是 \! 但不知道逗号(,)
回复:JSL 逗号 (,) 的转义字符模式你好@dilipkumar ,
这似乎就是你最初的 jsl 所做的。 我不确定你所说的输出如何, 3C22,YMERS,.AAA-.75YIN ,将允许查询识别字符串的哪个部分是每个变量。 添加引号是其他地方的建议,以帮助区分各个组件,因为单独的逗号不能,但同样,由于不熟悉 SQL,我不知道这是否是最好的甚至可行的方法。
@朱利安
回复:JSL 逗号 (,) 的转义字符模式@朱利安
你好,谢谢你的信息。
是的,您正确理解了我的问题。 但我不需要在输出中使用双引号
MN <SPAN class="token operator">=</SPAN> <SPAN class="token string">" \!"3C22\!",\!"Y MERS,.AAA-.75YIN\!" "</SPAN><SPAN class="token punctuation">;</SPAN>
<SPAN class="token comment">// which stores the string, including quotes:</SPAN>
<SPAN class="token comment">// "3C22" , "Y MERS,.AAA-.75YIN" i </SPAN>
我只需要<SPAN class="token comment">3C22</SPAN> ,<SPAN class="token comment"> YMERS,.AAA-.75YIN</SPAN>作为输出。
请建议。
问候,
迪利普
回复:JSL 逗号 (,) 的转义字符模式调试此问题的方法是在本机 SQL Server 中创建一个工作命令(我认为这就是您正在使用的数据库)。之后,在 JSL 中创建相同的字符串就不难了。我有一个建议,让代码更容易阅读。如果您使用 evalinsert 并用脱字符号 (^) 包围 MN 变量,将完成相同的操作:
sqlQuery = evalinsert("execute [dbo].[ABC] @MN = '^MN^'");
print(sqlquery);
结果是:
"execute [dbo].[ABC] @MN = '3C22,Y MERS,.AAA-.75YIN'"
我认为问题在于这是不正确的 SQL Server 语法。您将变量 MN 设置为等于整个字符串。SQL Server专家可以插话吗?
回复:JSL 逗号 (,) 的转义字符模式你好@dilipkumar ,
我想我理解你现在面临的问题。 看来问题可能是数据库以您不想要的方式解析查询字符串中的逗号,而不是 JMP 那样。SQL 不是我的专长,但我做了一些搜索并发现了这个帖子讨论了 SQL 语句中的转义字符,例如逗号。 建议添加双引号以帮助识别单独的子句,因为如果您在其他地方使用逗号,则单独的逗号并不能确定。 在您的示例中,定义 MN 变量时可能如下所示,但我必须说我没有办法测试这是否有效,因此我仅将其作为可能的建议提供:
MN = " \!"3C22\!",\!"Y MERS,.AAA-.75YIN\!" ";
// which stores the string, including quotes:
// "3C22" , "Y MERS,.AAA-.75YIN"
@朱利安
回复:JSL 逗号 (,) 的转义字符模式实际上我需要根据下面定义的变量(MN)从数据库中获取数据。 如果我在 jsl 脚本中传递 MN 并获取 3C22, Y MERS,.AAA-.75YIN 的数据。作为输出
//Create Database Connection
dbc = Create Database Connection(
"XXX",
)
MN = "3C22,Y MERS,.AAA-.75YIN";// where 3C22 is one input and 2nd input is Y MERS,.AAA-.75YIN"
dataTable = New Table( "RAW DATA");
ddt = Data Table( 1 );
//Execute SQL statements using this connection
sqlQuery = "execute [dbo].[ABC] @MN = '" || MN|| "'";
问候,
迪利普
回复:JSL 逗号 (,) 的转义字符模式以下是传递变量 x="abc,k,yz" 的一些用法;在 JSL 中,这些都不会导致错误。您能更具体地说明您在哪里发现问题吗?如果将其添加到另一个文字字符串而不在其周围引用,我可以看到这是一个问题。
names default to here(1);
x= "abc,k,yz";
rr=function({y},show(y));
rr(x);
dt=new table(new column(x,formula(random uniform())));
dt<<ADD rows=""></ADD>回复:JSL 逗号 (,) 的转义字符模式你好@dilipkumar ,
如果没有看到更多的脚本,我无法解释为什么 JMP 以这种方式处理该变量。 实际上,我希望始终返回整个字符串,除非您需要做额外的工作来根据分隔符将其分开。 您是否使用诸如 Word() 之类的函数来剥离字符串 X 的片段? 如果您能分享更多信息,我很乐意帮助解决这个问题。 或者,如果您希望传递单个变量,但希望更严格地控制变量中引用的内容(可能是列表)。 根据您的描述,听起来您希望一个元素为“abc”,另一个元素为“x,yz”。 以下 jsl 可以帮助解决这个问题:
x = {"abc", "k,yz"};
print( x[1] ); //"abc"
print( x[2] ); //k,yz"
@朱利安
回复:JSL 逗号 (,) 的转义字符模式实际上我已经定义了一个变量x =“abc,k,yz”。其中 abc 是第一个字符串,其中 x,yz 是第二个字符串。
现在,如果我通过我的脚本传递这些变量。在执行过程中,我的脚本将变量 x 分别视为 abc、k 和 yz。
问候,
迪利普回复:JSL 逗号 (,) 的转义字符模式你好@dilipkumar ,
逗号不需要转义字符,您可以简单地在引用的字符串中使用它们:
作为参考,我在这篇文章的底部包含了 jsl 转义序列。 但是,您是否遇到过字符串中的逗号似乎导致某种错误的情况? 我相信如果你能详细说明的话我们就能查清到底发生了什么。
@朱利安
