【问题标题】:SQL Select DISTINCT with WHERE LIKESQL 使用 WHERE LIKE 选择 DISTINCT
【发布时间】:2019-05-03 16:58:56
【问题描述】:

我正在尝试从带有 where BILLCOMPANY like 'value' 的表中选择不同的 BILLCOMPANY,但是它返回的所有匹配项不仅仅是不同的。

建议?

SELECT DISTINCT BillCompany,  UniqueID
From Customer
WHERE BillCompany LIKE  <cfqueryparam value="%#URL.term#%" cfsqltype="cf_sql_varchar">

样本数据
UniqueID / SiteCompany / BillingCompany
1 / McDonalds-213 / ABC 管理
2 / McDonalds-215 / XYZ 公司
3 / McDonalds-817 / ABC 管理
4 / 汉堡王-6 / XYZ 公司
5 / Dairy Queen-7 / 比利鲍勃公司
6 / KFC-4857 / ABC 管理

最后我需要一个清单:
ABC 管理
XYZ公司
比利鲍勃公司

UniqueID 稍后将用于提取帐单地址的其余部分。

【问题讨论】:

  • 删除UniqueID
  • 我的结果中需要 UniqueID...
  • DISTINCT BillCompany, UniqueID 表示两列的唯一对,而不是唯一的UniqueID
  • 您能否在问题中添加示例数据和您的预期结果?
  • 我在这里做了一个广泛的假设,UniqueID 对于客户来说是独一无二的?因此,当你拥有它时,你会得到所有这些,因为它对于每个客户都是不同的,你会得到所有的客户价值,但你说“我的结果中需要 UniqueID” - 好的,所以你做到了。现在通过在此处发布一组示例输出来添加说明。

标签: sql sql-server coldfusion distinct sql-server-2016


【解决方案1】:

你可以使用GROUP BY:

SELECT BillCompany,  MIN(UniqueID) AS UniqueID  -- here should be business logic min/max
From Customer
WHERE BillCompany LIKE  <cfqueryparam value="%#URL.term#%" cfsqltype="cf_sql_varchar">
GROUP BY BillCompany

【讨论】:

    【解决方案2】:

    我想多了。我不需要 UniqueID。在下一步中,我可以匹配 BillCompany 而不是 ID。

    【讨论】:

      猜你喜欢
      • 2011-05-12
      • 2020-11-03
      • 2011-08-16
      • 1970-01-01
      • 2016-12-18
      • 2021-09-14
      • 2013-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多