是这样子的,因为需求,一张表有多个张三李四王五,系统加载表格内容就出现全部的张三,(并不是order by排序优先显示那种,表格内容此时仅仅有那张三,没有李四王五什么的。),结果出来以后,系统页面的头部查询功能依然能查出该字段其他的值,李四王五等。
select * from where 表 ='张三'
这样子能根据条件筛选查出想的结果,但因为写死了,头部查询功能就失效了。
有没有一种SQL语句能实现的吗?
是这样子的,因为需求,一张表有多个张三李四王五,系统加载表格内容就出现全部的张三,(并不是order by排序优先显示那种,表格内容此时仅仅有那张三,没有李四王五什么的。),结果出来以后,系统页面的头部查询功能依然能查出该字段其他的值,李四王五等。
select * from where 表 ='张三'
这样子能根据条件筛选查出想的结果,但因为写死了,头部查询功能就失效了。
有没有一种SQL语句能实现的吗?
你所谓的头部查询功能,是不是出现一个值列表让用户选择?但这个值列表本身不就应该也是个单独的查询么?
select distinct 姓名 from 表
当然如果有单独的用户表更好。
下拉框中的值和查询数据本体应该设计成两个不同的sql,所有的报表都应如此。页面打开后直接发起下拉框中sql的查询,获得下拉框的值,然后用户选择一个值,再点击查询,此时发起报表本体的查询sql。
如果你非得在一个查询里实现,那性能损耗是得不偿失的。一个sql返回的就只能是一个表格,构成表格的要素就是行和列,你要放的这些值肯定不能以新增行的形式体现,因为会导致查询结果不符合预期,那么就只能新增一个列,来放上你的查询条件,但是如果最终数据只有一行,而你的下拉列表值又必须超过一行,所以无论是新增行还是新增列都不行。如果加一个字段,使用逗号分割所有下拉框中的值,此时你下拉框的逻辑更难写。