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 语句还得挺好用的。
本文探讨了在SQL Server中使用case...when...then...else...end语句的方法,特别是如何根据字段是否为空来动态构建SQL插入语句,以解决仅能生成非空记录的问题。
667

被折叠的 条评论
为什么被折叠?



