Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL搜索查询,如何为每个输入参数分配权重,以及如何按输入参数的权重对结果排序,_Sql - Fatal编程技术网

SQL搜索查询,如何为每个输入参数分配权重,以及如何按输入参数的权重对结果排序,

SQL搜索查询,如何为每个输入参数分配权重,以及如何按输入参数的权重对结果排序,,sql,Sql,我有一个表[Car],有CarID、Make、Mode、Version、State、City、MinPrice、Maxprice等8列。 我想用Make、City、MinPrice、MaxPrice四个输入参数实现一个搜索算法 如何为每个输入参数指定权重 请建议我编写搜索查询,首先给出和结果,然后根据4个输入参数的权重给出或要遵循的结果和结果。尝试以下方法: select * from [Car] where Make = @Make or City = @City or

我有一个表[Car],有CarID、Make、Mode、Version、State、City、MinPrice、Maxprice等8列。 我想用Make、City、MinPrice、MaxPrice四个输入参数实现一个搜索算法

如何为每个输入参数指定权重

请建议我编写搜索查询,首先给出和结果,然后根据4个输入参数的权重给出或要遵循的结果和结果。

尝试以下方法:

select * from [Car]
where Make = @Make or 
      City = @City or 
      MinPrice >= @MinPrice or 
      MaxPrice <= @MaxPrice
order by 
      case when Make = @Make then 3 else 0 end + 
      case when City = @City  then 2 else 0 end + 
      case when MinPrice >= @MinPrice then 1 else 0 end + 
      case when MaxPrice <= @MaxPrice then 1 else 0 end
      desc
尝试以下方法:

select * from [Car]
where Make = @Make or 
      City = @City or 
      MinPrice >= @MinPrice or 
      MaxPrice <= @MaxPrice
order by 
      case when Make = @Make then 3 else 0 end + 
      case when City = @City  then 2 else 0 end + 
      case when MinPrice >= @MinPrice then 1 else 0 end + 
      case when MaxPrice <= @MaxPrice then 1 else 0 end
      desc

你的问题不清楚。请提供示例数据、示例输入参数和预期输出。请清楚地解释这句话:请建议我编写搜索查询,首先给出和结果,然后根据4个输入参数的权重给出或要遵循的结果和结果。很难理解你想要什么你的问题不清楚。请提供示例数据、示例输入参数和预期输出。请清楚地解释这句话:请建议我编写搜索查询,首先给出和结果,然后根据4个输入参数的权重给出或要遵循的结果和结果。马克,很难理解你想要什么。非常感谢。它成功了。部分和结果都很好。对于或结果的一部分,我想让第一个首选项生成输入参数,然后第二个首选项生成城市。我指的是或结果的显示顺序。在或结果中,我指的是每个结果行,例如,如果Make等于输入参数Make,然后,该结果行应立即显示在OR结果中的第一个。在结果行中,如果Make不等于输入参数Make,并且如果City等于输入City,则该结果行应显示在OR结果中的第二个。。。请告诉我。谢谢。想为上述评论添加此内容,Make的权重大于city。城市的权重大于MinPrice。例如,Make的权重=3,city的权重=2,MinPrice的权重=1,MaxPrice的权重=1,这样我就能按要求的顺序得到结果,thanks@ChethanBabuR:Hi Chethan,答案是修改order by case子句中的then值以匹配所需的权重-我已相应地更新了我的答案。Hi Mark。。非常感谢你的回复。我得到了要求的结果。谢谢,你好,马克。非常感谢。它成功了。部分和结果都很好。对于或结果的一部分,我想让第一个首选项生成输入参数,然后第二个首选项生成城市。我指的是或结果的显示顺序。在或结果中,我指的是每个结果行,例如,如果Make等于输入参数Make,然后,该结果行应立即显示在OR结果中的第一个。在结果行中,如果Make不等于输入参数Make,并且如果City等于输入City,则该结果行应显示在OR结果中的第二个。。。请告诉我。谢谢。想为上述评论添加此内容,Make的权重大于city。城市的权重大于MinPrice。例如,Make的权重=3,city的权重=2,MinPrice的权重=1,MaxPrice的权重=1,这样我就能按要求的顺序得到结果,thanks@ChethanBabuR:Hi Chethan,答案是修改order by case子句中的then值以匹配所需的权重-我已相应地更新了我的答案。Hi Mark。。非常感谢你的回复。我得到了要求的结果。谢谢