如何將“=”作為列名的一部分轉義?<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)" )) ;