postgresql动态拼接sql的注意点

标签:
拼接字符串postgresql |
分类: 菜鸟DB开发之Postgresql |
-----------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------
CREATE TABLE "mystu" (
"sid" int4,
"sname" varchar(20),
"status" int2
)
select * from mystu;
http://s2/mw690/4c197d42tx6C3pvXnPPa1&690
--select 语句
select sid,sname,status,'select '||sid ||' as sid,'||(case when (coalesce(sname,'')='') then 'null' else ''''||sname||'''::varchar' end)||' as sname, '||(case when (coalesce(status::VARCHAR,'')='') then 'null' else status::VARCHAR end)||' as status;' as select_sql
from mystu;
http://s9/mw690/4c197d42tx6C3pvZocU28&690
--insert 语句(update 语句同理)
select sid,sname,status,'insert into mystu values('||sid ||','||(case when (coalesce(sname,'')='') then 'null' else ''''||sname||'''::varchar' end)||', '||(case when (coalesce(status::VARCHAR,'')='') then 'null' else status::VARCHAR end)||');' as insert_sql
from mystu;
http://s8/mw690/4c197d42tx6C3pw1a7l87&690
output_example:
select 1 as sid,'AA'::varchar as sname, 1 as status
select 5 as sid,'CC'::varchar as sname, null as status;
insert into mystu values(1,'AA'::varchar , 1);
insert into mystu values(5,'CC'::varchar , null);