在工作中遇到需要动态生成查询条件的问题,以前这类问题遇到的不多,但是现在的工作需要我重新考虑这一问题,大概的解决思路就是根据用户的输入或者选择拼接SQL查询语句。
在编写的过程中我遇到了不少问题,罗列一下:
1、在一个存储过程中引用上一个存储过程生成的临时表,通过查询生成另一个临时表时,会报错。解决的方法就是使用全局临时表来保存数据。
@sql_string='select ....... into ##temp_table2 from #temp_table1 where .....'
2、在临时表生成的字段命名出现类似于计算公式的字符时,sqlserver会认为这是一个计算公式而报错,例如时间区间 第一天到第三十天:1-30.使用字符串标注的形式进行区分:
select colname as '1-30',.... from tablename.
3、游标筛选参数表的记录时,如果一直是next的话,有可能会漏掉最后一条记录。例如参数表是账龄区间 billage
1-30 30
31-60 60
61-90 90
。。。
270-360 360
361 0
fetch first from cursor into @var
while @@fetch_status=0
begin
.....
fetch next from cursor into @var
end
这个例子中,游标走到361,会把361这条参数记录漏掉,
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。