查询按名称排序

时间:2010-10-28 07:59:51

标签: sql-server

我有一个字符串数组我想编写一个查询

  1. 首先,它将根据特定表中的Id计算基于数组中第一个产品名称的产品

  2. 如果值大于1,则从列表中随机选择前一个id

  3. 否则,如果计数为1或0,则使用字符串数组中的下一个值执行相同的查询。

  4. 任何机构都可以为这种情况提出合适的查询

1 个答案:

答案 0 :(得分:0)

我假设数组数据在TMP_ARRAY中。

您有两套产品和数组,您只想从产品中检索数组中的那些产品。为此,您应该使用inner join和正确的on子句,接下来要按列名称将这些结果设置为组GROUP BY,因为您只想对单个组大小大于1的结果进行操作,条款having需要在你想要从他们的'top'id中选择的末尾添加。在这里,我们有一个问题你的意思是'顶'?在数据库中,数据没有任何特定的顺序。我认为这是最大的,在这种情况下的另一种情况意味着只有一个结果,所以对于这两种情况我们选择MAX(ID)。

结果我想出了类似的东西

SELECT MAX(ID) FROM PRODUCTS p INNER JOIN TMP_ARRAY t ON t.NAME = p.NAME GROUP BY p.NAME HAVING COUNT(ID) > 1;

但我不确定我是否理解了一切正确。