[英]How to put variable value in another variable in javascript?
我有一个 sql 语句,其中应该包含变量值。 但是因为 sql 语句来自数据库检索,所以我不能这样做。
我的代码是:
var MySQLCommand_101 = `
SELECT PARAM_VALUE FROM MNG.GENERAL.MNG_ELT_PARAMETERS
`;
var stmt = snowflake.createStatement( {sqlText:MySQLCommand_101} );
var resultSet = stmt.execute();
resultSet.next();
var VALIDATION_RESULT = resultSet.getColumnValue(1);
现在,
VALIDATION_RESULT = 'CASE WHEN DIV0(ERROR_ROWS, TOTAL_ROWS) * 100 > ${ERROR_PERCENTAGE_THRESHOLD} THEN 1 ELSE 0 END AS VALIDATION_RESULT'
在我的代码中,我分配了 ERROR_PERCENTAGE_THRESHOLD = 30。但是因为 VALIDATION_RESULT 正在执行中,并且没有编译 - 当我返回 VALIDATION_RESULT 时,我得到了字符串本身,
CASE WHEN DIV0(ERROR_ROWS, TOTAL_ROWS) * 100 > ${ERROR_PERCENTAGE_THRESHOLD} THEN 1 ELSE 0 END AS VALIDATION_RESULT
虽然我期待得到
CASE WHEN DIV0(ERROR_ROWS, TOTAL_ROWS) * 100 > 30 THEN 1 ELSE 0 END AS VALIDATION_RESULT
感谢您的帮助,
如果您希望将“CASE WHEN DIV0(ERROR_ROWS, TOTAL_ROWS) * 100 > 30 THEN 1 ELSE 0 END AS VALIDATION_RESULT”作为 VALIDATION_RESULT,您可以在获取值后替换变量:
var ERROR_PERCENTAGE_THRESHOLD = 30;
var MySQLCommand_101 = `
SELECT PARAM_VALUE FROM MNG.GENERAL.MNG_ELT_PARAMETERS
`;
var stmt = snowflake.createStatement( {sqlText:MySQLCommand_101} );
var resultSet = stmt.execute();
resultSet.next();
var VALIDATION_RESULT_TMP = resultSet.getColumnValue(1);
var VALIDATION_RESULT = VALIDATION_RESULT_TMP.replace("${ERROR_PERCENTAGE_THRESHOLD}",ERROR_PERCENTAGE_THRESHOLD ));
在您的代码中
VALIDATION_RESULT = 'CASE WHEN DIV0(ERROR_ROWS, TOTAL_ROWS) * 100 > ${ERROR_PERCENTAGE_THRESHOLD} THEN 1 ELSE 0 END AS VALIDATION_RESULT'
将单引号 ( ' '
) 替换为` `
。
VALIDATION_RESULT = `CASE WHEN DIV0(ERROR_ROWS, TOTAL_ROWS) * 100 > ${ERROR_PERCENTAGE_THRESHOLD} THEN 1 ELSE 0 END AS VALIDATION_RESULT`
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.