s=s.replace(/as varchar/gi, "as String"); s=s.replace(/bi_(dm|dw|ods)_[a-z_]+./g, ""); s=s.replace(/((FULL *)?[a-zA-Z]* +JOIN)/gi, "GLOBAL $1"); s=s.replace(/( +in +\( *select)/gi, " GLOBAL$1"); s=s.replace(/array_agg\(DISTINCT /gi, "groupUniqArray("); s=s.replace(/array_join/g, "arrayStringConcat"); s=s.replace(/array_agg/g, "groupArray");; s=s.replace(/date_diff\(/gi, "dateDiff("); s=s.replace(/curdate\(\)/gi, "today()"); s=s.replace(/cast\(substring\(([a-zA-Z0-9._]+),1,10\) as date\)/gi, "cast($1 as Nullable(Date))"); s=s.replace(/date_format\(/g,'formatDateTime('); s=s.replace(/IF\(/g,'if('); s=s.replace(/SUM\(/g,'sum('); s=s.replace(/date_parse\(([a-zA-Z0-9@${}:]+) *, +[\'\"]%Y-%m-%d[\'\"]\)/g,'toDate($1)'); s=s.replace(/date_add\('day', +(-?[0-9]+), +toDate\(([a-zA-Z0-9@${}:]+)\)\)/g,'addDays(toDate($2),$1)'); s=s.replace(/date_add\('day', +(-?[0-9]+), +([a-zA-Z0-9@${}:]+)\)/g,'addDays($2,$1)'); s=s.replace(/(dim_mer_mer_dadi|dim_mer_sku_dadi) where tenant_id='321566' and date_key = '([a-zA-Z0-9@${}:_]+)'/g,"$1 where tenant_id='321566'"); s=s.replace(/date_key *= *[\'\"]\$\${date_key_([a-zA-Z0-9_]+)}[\'\"]/g,"date_key GLOBAL in (select max(date_key) from $1 where date_key between formatDateTime(addDays(now(), -7), '%Y-%m-%d') and formatDateTime(now(), '%Y-%m-%d'))");
转换
结果:
新窗口打开