我想知道大家遇到这钟情况一般怎么处理???
是分到不同包含查询语句的函数里面还是像我这样一条语句写出来???
这条语句查询出来的都是一个页面上的所以“页签”所包含的内容,最后拼接如下:
SELECT WF_w_pc.XXXX,w_pc_ProjectId,ISNULL(WF_w_pc.w_pc_AnnualPlan,'') w_pc_AnnualPlan,w_pc_ProjectName,Dept_Name,ISNULL(WF_R_BI.YYYYName,'') w_pc_Nature,ISNULL(WF_R_BI2.YYYYName,'') w_pc_SOURCE ,w_pc_StartDate,w_pc_EndDate,ISNULL(WF_w_pc_AP.w_pc_AP_Plan,'') w_pc_AP_Plan
,CASE WF_w_pc.w_pc_Status
WHEN 10 THEN '草稿'
WHEN 20 THEN '审核中'
WHEN 30 THEN '完成'
ELSE '' END
AS w_pc_Status
,w_pc_Backdrop,w_pc_MainContent,w_pc_TechLines,w_pc_ResultForm,w_pc_SocialBenefits,w_pc_EconomicBenefit,w_pc_TechBenefits,w_pc_CooperationForm,w_pc_CooperationByUnit
,ISNULL(WF_w_pc_P.w_pc_P_UserName,'') w_pc_P_UserName
,ISNULL(WF_w_pc_P.proHead,'') proHead
,ISNULL(WF_w_pc_P.proArticipants,'') proArticipants
FROM WF_Research_ProjectCharter WF_w_pc
LEFT JOIN WF_Research_PC_AnnualPlan WF_w_pc_AP
ON WF_w_pc.XXXX=WF_w_pc_AP.XXXX
LEFT JOIN WF_Research_BasicInfo WF_R_BI
ON WF_w_pc.w_pc_Nature=WF_R_BI.YYYYID AND WF_R_BI.YYYYType=1
LEFT JOIN WF_Research_BasicInfo WF_R_BI2
ON WF_w_pc.w_pc_Nature=WF_R_BI2.YYYYID AND WF_R_BI2.YYYYType=2
LEFT JOIN
(SELECT XXXX,w_pc_P_UserName=(STUFF((SELECT ',' + w_pc_P_USERNAME FROM WF_Research_PC_Participate
WHERE w_pc_P_Type=2 AND XXXX=pcp.XXXX FOR XML PATH('')),1,1,''))
,proHead=(STUFF((SELECT ',' + w_pc_P_USERNAME FROM WF_Research_PC_Participate
WHERE w_pc_P_Type=3 AND XXXX=pcp.XXXX FOR XML PATH('')),1,1,''))
,proArticipants=(STUFF((SELECT ',' + w_pc_P_USERNAME FROM WF_Research_PC_Participate
WHERE w_pc_P_Type<>3 AND XXXX=pcp.XXXX FOR XML PATH('')),1,1,''))
FROM WF_Research_PC_Participate pcp
GROUP BY XXXX) AS WF_w_pc_P
ON WF_w_pc.XXXX=WF_w_pc_P.XXXX
WHERE WF_w_pc.XXXX=@XXXX
24 个解决方案
#1
其实这个不算长,而且逻辑也不复杂,还好
#2
这也算长。。。。哥有次写linq都比这个长了。
#3
有时会,特别是自动生成语句的时候,有时还很长,还好吧
#4
我个人的意见呀,尽量尽量少在SQL里写逻辑和判断的处理,SQL目的尽量纯粹一些,
它就是为了取数据用的,至于取出来数据做判断,形式成什么,如果空了要显示什么,
这些都是c#来实现的。
我从不在SQL里写ISNULL、CASE之类的逻辑判断。这些交给c#吧,在aspx页面做个判断就可以了嘛。
个人意见,欢迎拍砖。
它就是为了取数据用的,至于取出来数据做判断,形式成什么,如果空了要显示什么,
这些都是c#来实现的。
我从不在SQL里写ISNULL、CASE之类的逻辑判断。这些交给c#吧,在aspx页面做个判断就可以了嘛。
个人意见,欢迎拍砖。
#5
加一些缩进看起来会好一点。
如果你把所有C#程序全部写在一行中(编译器允许你这么做),也会够呛的。
如果你把所有C#程序全部写在一行中(编译器允许你这么做),也会够呛的。
#6
1.单纯从长度上说,这个就是一小段代码而已;
2.从设计角度说,sql开发尽量采用动态sql方式,
这样可以把常用的数据对象的查询方法进行封装,
实际上,充分利用数据库的视图,表,函数和动态sql,也可以产生类似OOPL的效果,大幅度的减少数代码量
2.从设计角度说,sql开发尽量采用动态sql方式,
这样可以把常用的数据对象的查询方法进行封装,
实际上,充分利用数据库的视图,表,函数和动态sql,也可以产生类似OOPL的效果,大幅度的减少数代码量
#7
随便。。。。。
#8
要看你擅长做什么处理了,如果你对SQL的处理比较熟练,那么建议尽量使用SQL来处理所有逻辑,界面层直接绑定即可。如果你不擅长写SQL语句,逻辑可以调整到外面c#处理……
#9
还好啦,我经常写这么长的
#10
嗯,谢谢啦!!!
#11
我想说 若是给你个300多行的SQL 而且到处的join ,union,case,聚合函数,这种还得了
#12
还好,
我最近也在开发这种签字流程的业务系统,
sql语句也是相当的长,
我最近也在开发这种签字流程的业务系统,
sql语句也是相当的长,
#13
++1
实在觉得人为加太麻烦就用工具中的 format code=》format (ctrl+F11)
#14
谢谢各位啦。。。。
还以为写的太长呢。。。。。
还以为写的太长呢。。。。。
#15
·要注意注释和规范啊·其实我个人感觉 sql处理起来要比 c#快· 一般能在SQL里面解决的 都在那里解决了·
#16
适当的使用视图或函数吧。还有可以利用 with语法还不错,层次感强一点,思路也会清晰。。
#17
哎,现在这个项目居然整出来了近万行的存储过程了,真无言了
#18
+1
#19
基本上不这么写,显示归显示,逻辑归逻辑,数据归数据
我想问一下,你这到底归那里呢?为了显示而把数据按逻辑处理了?
我想问一下,你这到底归那里呢?为了显示而把数据按逻辑处理了?
#20
sql 语句到不算长 更长的我都写过
我个人写法 基本上不会用IsNull case when...
数据量大的时候 这玩意用多了貌似会影响Sql的执行性能。
case when 还好 isnull比较有影响 前提是大数据量
我个人写法 基本上不会用IsNull case when...
数据量大的时候 这玩意用多了貌似会影响Sql的执行性能。
case when 还好 isnull比较有影响 前提是大数据量
#21
这个还好,见过了,习惯了,本人表示毫无压力
#22
还好
#23
个人习惯,查询中的每个字段单独占一行
每个表连接单独占一行
每个条件单独占一行
反正就是尽量看着清楚,不怕长
每个表连接单独占一行
每个条件单独占一行
反正就是尽量看着清楚,不怕长
#24
需要显示的数据查询出来输出。。。
#1
其实这个不算长,而且逻辑也不复杂,还好
#2
这也算长。。。。哥有次写linq都比这个长了。
#3
有时会,特别是自动生成语句的时候,有时还很长,还好吧
#4
我个人的意见呀,尽量尽量少在SQL里写逻辑和判断的处理,SQL目的尽量纯粹一些,
它就是为了取数据用的,至于取出来数据做判断,形式成什么,如果空了要显示什么,
这些都是c#来实现的。
我从不在SQL里写ISNULL、CASE之类的逻辑判断。这些交给c#吧,在aspx页面做个判断就可以了嘛。
个人意见,欢迎拍砖。
它就是为了取数据用的,至于取出来数据做判断,形式成什么,如果空了要显示什么,
这些都是c#来实现的。
我从不在SQL里写ISNULL、CASE之类的逻辑判断。这些交给c#吧,在aspx页面做个判断就可以了嘛。
个人意见,欢迎拍砖。
#5
加一些缩进看起来会好一点。
如果你把所有C#程序全部写在一行中(编译器允许你这么做),也会够呛的。
如果你把所有C#程序全部写在一行中(编译器允许你这么做),也会够呛的。
#6
1.单纯从长度上说,这个就是一小段代码而已;
2.从设计角度说,sql开发尽量采用动态sql方式,
这样可以把常用的数据对象的查询方法进行封装,
实际上,充分利用数据库的视图,表,函数和动态sql,也可以产生类似OOPL的效果,大幅度的减少数代码量
2.从设计角度说,sql开发尽量采用动态sql方式,
这样可以把常用的数据对象的查询方法进行封装,
实际上,充分利用数据库的视图,表,函数和动态sql,也可以产生类似OOPL的效果,大幅度的减少数代码量
#7
随便。。。。。
#8
要看你擅长做什么处理了,如果你对SQL的处理比较熟练,那么建议尽量使用SQL来处理所有逻辑,界面层直接绑定即可。如果你不擅长写SQL语句,逻辑可以调整到外面c#处理……
#9
还好啦,我经常写这么长的
#10
嗯,谢谢啦!!!
#11
我想说 若是给你个300多行的SQL 而且到处的join ,union,case,聚合函数,这种还得了
#12
还好,
我最近也在开发这种签字流程的业务系统,
sql语句也是相当的长,
我最近也在开发这种签字流程的业务系统,
sql语句也是相当的长,
#13
++1
实在觉得人为加太麻烦就用工具中的 format code=》format (ctrl+F11)
#14
谢谢各位啦。。。。
还以为写的太长呢。。。。。
还以为写的太长呢。。。。。
#15
·要注意注释和规范啊·其实我个人感觉 sql处理起来要比 c#快· 一般能在SQL里面解决的 都在那里解决了·
#16
适当的使用视图或函数吧。还有可以利用 with语法还不错,层次感强一点,思路也会清晰。。
#17
哎,现在这个项目居然整出来了近万行的存储过程了,真无言了
#18
+1
#19
基本上不这么写,显示归显示,逻辑归逻辑,数据归数据
我想问一下,你这到底归那里呢?为了显示而把数据按逻辑处理了?
我想问一下,你这到底归那里呢?为了显示而把数据按逻辑处理了?
#20
sql 语句到不算长 更长的我都写过
我个人写法 基本上不会用IsNull case when...
数据量大的时候 这玩意用多了貌似会影响Sql的执行性能。
case when 还好 isnull比较有影响 前提是大数据量
我个人写法 基本上不会用IsNull case when...
数据量大的时候 这玩意用多了貌似会影响Sql的执行性能。
case when 还好 isnull比较有影响 前提是大数据量
#21
这个还好,见过了,习惯了,本人表示毫无压力
#22
还好
#23
个人习惯,查询中的每个字段单独占一行
每个表连接单独占一行
每个条件单独占一行
反正就是尽量看着清楚,不怕长
每个表连接单独占一行
每个条件单独占一行
反正就是尽量看着清楚,不怕长
#24
需要显示的数据查询出来输出。。。