select 'insert into pcmc_menu(menuid, subsysid'+
--确定pmenuid是否为NULL,不为NULL就加上
case convert(varchar,pmenuid) when NULL then '' else ', pmenuid' end
+',levelp, menuname, imgurl, linkurl,isinternet,remark'+
--确定sortno是否为NULL,不为NULL就加上
case convert(varchar,sortno) when NULL then ')' else ', sortno)' end
+' values('+convert(varchar,menuid)+','+convert(varchar,subsysid)+','+
case convert(varchar,pmenuid) when NULL then '' else convert(varchar,pmenuid)+',' end
+convert(varchar,levelp)+','''+menuname+''','''+imgurl+''','''+linkurl+''','''+isinternet+''','''+remark+''''+
case convert(varchar,sortno) when NULL then ')' else ','+convert(varchar,sortno)+')' end
from pcmc_menu
在SQL SERVER这样执行就不行,只能够生成所有条件都不为空的记录。
case ... when ... then ...else ... end 语句还得挺好用的。
本文出自:冯立彬的博客