如何将“=”作为列名的一部分转义?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />如何将“=”作为列名的一部分转义?
我需要实现一个“select where”语句,并将它构建为一个字符串,其中涉及多个列名。 但是当它评估时,它试图将“=”解释为一个赋值。 我的列名如下:“COND=TEMP”。
在我使用的脚本部分下方:
选择字符串= “:测试名称 == benchNameToCompare” ;
//对于映射表中的每一列,如果列名是COND,则将其添加到选择条件中
为了( j = 1 , j <=列数, j ++,
当前数据表(相关映射表) ;
当前列名=相关映射表<<获取列名() ;
如果(包含(当前列名[ j ] , “条件_” ) > 0 ,
价值=当前列名[ j ][一世] ;
colName =当前列名[ j ] ;
选择字符串=选择字符串|| " & 作为列(correlationMapTable," ||字符(当前列名[ j ]) || ") == " ||字符(当前列名[ j ][一世]) ;
) ;
) ;
选择字符串= “benchDataTable <<选择哪里(” ||选择字符串|| ")" ;
评估(解析(选择字符串)) ; //如果我将“=”作为列名的一部分,这是抱怨。
benchDataTable <<子集((选定的行) ,输出表名( “过滤的工作台” )) ;
提前致谢!
回复:如何将“=”作为列名的一部分进行转义?是的,引号。谢谢你的收获。
要了解有关转义字符和 JSL 的细微差别的更多信息,您可以参考 Scripting Guide,它的内容非常好。帮助>>书籍>>脚本指南。(转义字符在第 87 页)。如果您只是想知道语法,脚本索引会更有帮助。帮助>>脚本索引。
有几点需要指出,
对于 If() 语句中的数字,JSL 响应除 0 以外的任何值。所以如果(包含(当前列名[ j ] , “条件_” ) > 0,等同于如果(包含(当前列名[ j ] , “条件_” ) ,
这个:
//对于映射表中的每一列,如果列名是COND,则将其添加到选择条件中
为了( j = 1 , j <=列数, j ++,
当前数据表(相关映射表) ;
当前列名=相关映射表<<获取列名() ;
如果(包含(当前列名[ j ] , “条件_” ) > 0 ,
价值=当前列名[ j ][一世] ;
colName =当前列名[ j ] ;
会更好写:
//对于映射表中的每一列,如果列名是COND,则将其添加到选择条件中
为了( j = 1 , j <=列数, j ++,
colName = 列(相关映射表,j) <<获取名称;
如果(包含( colName , “条件_” ) ,
回复:如何将“=”作为列名的一部分进行转义?嘿,布雷诺索,
是的,我没有足够长的时间知道 JSL 中转义字符的起源,但它们确实以“\!”开头。要在字符串中插入换行符,它是 "\!n"。为防止 JMP 将引号视为字符串的结尾,请将其设为 \!"。(我认为 msharp 的意思是“您需要转义的是引号”)。
而且,是的,从其他语言转向 JSL 可能有点令人反感;-)。
高温下,
埃里克
回复:如何将“=”作为列名的一部分进行转义?你好,
感谢您抽出宝贵时间回复。 那么你能澄清一下所需的转义序列是\! <列名放在这里> \! ?
作为一名 C# 程序员,学习 JSL 让我很头疼 
问候,
乙
回复:如何将“=”作为列名的一部分进行转义?老实说,这个剧本有很多问题。一想到调试它,我就头疼。
所以我不会,但基本上你的问题是这样的:
= 不需要转义 你需要转义的是插入语引号。又名:
评估(解析( “dt << 选择位置(列(”条件=温度“)== 2)” )) ;
需要变成:
评估(解析( "dt << Select Where(Column(\!"Cond=Temp\!") == 2)" )) ;