Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.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_Sql Server - Fatal编程技术网

具有多个属性的SQL排序(按一致性排序)

具有多个属性的SQL排序(按一致性排序),sql,sql-server,Sql,Sql Server,我有一个具有某些属性的表,例如名称和地址。在搜索字段中,我想让系统的用户键入他们所知道的关于这些人的任何信息,并在表中返回结果。显然,我确实希望最适合的结果能在榜首 排名应该在SQL命令中完成,还是有其他更好的方法 是否有人知道一种根据最高一致性对结果排序的好方法?我基本上希望这个人出现在最符合搜索条件的顶部 您可以在此处看到一个示例: 谢谢你的帮助 (我目前确实使用SQL Server,但非常感谢您的帮助。)您可以在SQL中进行排序,但最常见的解决方案是在UI中进行排序,因此不必每次用户更改

我有一个具有某些属性的表,例如名称和地址。在搜索字段中,我想让系统的用户键入他们所知道的关于这些人的任何信息,并在表中返回结果。显然,我确实希望最适合的结果能在榜首

  • 排名应该在SQL命令中完成,还是有其他更好的方法
  • 是否有人知道一种根据最高一致性对结果排序的好方法?我基本上希望这个人出现在最符合搜索条件的顶部
  • 您可以在此处看到一个示例:

    谢谢你的帮助


    (我目前确实使用SQL Server,但非常感谢您的帮助。)

    您可以在SQL中进行排序,但最常见的解决方案是在UI中进行排序,因此不必每次用户更改排序顺序时都从数据库请求数据

    要查找您的查询,您可能需要在查询中添加一个字段,以显示
    comformity
    类似的内容

     SELECT *, function_comformity() as comformity
    

    因此,您可以在用户界面上对该字段进行排序,就像对姓名或邮政编码进行排序一样。

    您可能需要检查全文索引和搜索-它们有一些排序选项,可以帮您完成这项工作:

    。。。和搜索功能信息:


    或者,你也可以自己解决问题,比如解析用户输入并逐字匹配,然后提高匹配更多单词的结果,精确的单词排序等。但是你需要自己处理一些情况(比如“纽约”等多单词城市)。

    听起来你需要一个字符串比较函数,比如雅罗·温克勒。这是Oracle()的内置函数,我可以想象其他许多RDBMs


    Jaro Winkler非常擅长识别顺序错误的字符串,分数将反映这一点。运行一些测试,看看它是否能提供您想要的结果,但我在我所做的工作(营销客户数据集成)中经常使用它。我开发了一个API,基本上可以做到这一点,但增加了很多复杂性,例如考虑昵称等。API的最高一致性是什么?我只是用这个术语来更好地描述它。对我来说,这意味着结果符合得多好,记住有5个属性需要检查。听起来像是在要求一个字符串比较函数,比如Jaro Winkler。这是Oracle()的一个内置函数,我可以想象许多其他RDBMs。也许你应该解释一下你想要什么样的搜索do@JKauJaro Winkler非常擅长识别顺序错误的字符串,分数将反映这一点。运行一些测试,看看它是否能提供您想要的结果,但我在我所做的工作(营销客户数据集成)中经常使用它。我开发了一个API,基本上可以做到这一点,但增加了很多复杂性,例如记录昵称等。感谢您的帮助!在UI中排序时:如何在那里排序?你有什么建议吗?(哪怕只是一篇关于这方面的博客)