Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将T-SQL查询转换为Postgres_Sql_Postgresql_Plpgsql - Fatal编程技术网

将T-SQL查询转换为Postgres

将T-SQL查询转换为Postgres,sql,postgresql,plpgsql,Sql,Postgresql,Plpgsql,我想将SQL Server查询转换为Postgres。 下面是我试图转换的查询,我在postgres中遇到错误 错误:交叉表第2行或其附近出现语法错误: 8,9 p中变量的crosstabSUMVALUE ^查询:从中选择时间戳_S,COALESCE8,0作为变量_8_值,COALESCE9,0作为变量_9_值 档案室出口数据库AR3 t 8,9 p上下文中变量的crosstabSUMVALUE:PL/pgSQL函数somefuncname第12行的EXECUTE语句 **********错误*

我想将SQL Server查询转换为Postgres。 下面是我试图转换的查询,我在postgres中遇到错误

错误:交叉表第2行或其附近出现语法错误: 8,9 p中变量的crosstabSUMVALUE ^查询:从中选择时间戳_S,COALESCE8,0作为变量_8_值,COALESCE9,0作为变量_9_值 档案室出口数据库AR3 t 8,9 p上下文中变量的crosstabSUMVALUE:PL/pgSQL函数somefuncname第12行的EXECUTE语句 **********错误**********

错误:交叉表SQL状态处或附近出现语法错误:42601上下文: PL/pgSQL函数somefuncname EXECUTE语句第12行

声明@sql varcharmax; 声明@sql2 varcharmax; 设置@sql=STUFFselect distinct','+quoteName可从ARCHIEVE_EXPORT_DB_AR变量,用于XML路径,1,1,; 将@sql2=STUFFselect distinct'、'+'ISNULL'+QUOTENAMEVARIABLE+',0'+'设置为'+QUOTENAME'变量'+castVARIABLE设置为varchar+''U值',从XML路径1,1的ARCHIEVE'U导出'U DB'AR设置为',; set@sql='select TIMESTAMP'+@sql2+'来自ARCHIEVE\u EXPORT\u DB\u AR t “+@sql+'p”中变量的值; exec@sql; 创建或替换函数somefuncname返回int语言plpgsql作为$$ 声明 v_sql文本; 声明 v_sql2文本; 开始 v_sql:=字符串_AGGDistinctVARIABLE::text',,来自archive_EXPORT_DB_A3; v_sql2:=字符串|变量::文本| | |,0作为变量| | |变量::文本| | | | | | | | | | | | | | | | | | | |; v_sql:=“从ARCHIEVE_EXPORT_DB_AR3 t中选择时间戳,| | v|u sql2 | |” “| | v|u sql | | p”中变量的crosstabSUMVALUE; executev_sql; 终止 $$; 选择名称; 从中可以看出,您没有正确使用交叉表

交叉表在一个模块中;包括在内了吗?交叉表中的查询需要加引号


我建议您首先关注获取使用交叉表工作的基本查询,然后再尝试在动态SQL过程中使用它

似乎您有一个类似select timestamp的查询,另一个是select,而不是表t中的列表列,等等。请将“+@sql+'p”中的变量的查询集@sql='select timestamp'++@sql2+'转换为“+@sql+'p'”中的PIVOT SUMVALUE行,以帮助我;请帮我转换这个。