gpt4 book ai didi

sql - 选择一列 DISTINCT SQL

转载 作者:行者123 更新时间:2023-12-02 07:21:07 27 4
gpt4 key购买 nike

已添加:使用 SQL Server 2000 和 2005,因此必须同时处理两者。另外,value_rk 不是数字/整数(错误:操作数数据类型 uniqueidentifier 对于 min 运算符无效)

当我不关心返回的其他列时,有没有办法进行单列“DISTINCT”匹配?示例:

**Table**
Value A, Value L, Value P
Value A, Value Q, Value Z

我只需要根据第一行(值 A)中的内容返回其中一行。我仍然需要第二列和第三列的结果(无论如何,第二列实际上应该全面匹配,但第三列是一个唯一的键,我至少需要其中一个)。

这是我到目前为止所得到的,尽管它显然不起作用:

SELECT value, attribute_definition_id, value_rk
FROM attribute_values
WHERE value IN (
SELECT value, max(value_rk)
FROM attribute_values
)
ORDER BY attribute_definition_id

我在 ColdFusion 工作,所以如果有一个简单的解决方法,我也愿意这样做。我试图限制或“分组”第一列“值”。 value_rk 是我的大问题,因为每个值都是唯一的,但我只需要一个。

注意:value_rk 不是数字,因此这不起作用

更新:我有一个工作版本,它可能比纯 SQL 版本慢很多,但老实说,目前任何工作都比没有好。它获取第一个查询的结果,执行第二个查询,但将其结果限制为一个,并获取匹配值的匹配 value_rk。就像这样:

<cfquery name="queryBaseValues" datasource="XXX" timeout="999">
SELECT DISTINCT value, attribute_definition_id
FROM attribute_values
ORDER BY attribute_definition_id
</cfquery>

<cfoutput query="queryBaseValues">
<cfquery name="queryRKValue" datasource="XXX">
SELECT TOP 1 value_rk
FROM attribute_values
WHERE value = '#queryBaseValues.value#'
</cfquery>
<cfset resourceKey = queryRKValue.value_rk>
...

现在您已经完成了,在 ColdFusion 中明确选择单个列。任何纯粹的 SQL Server 2000/2005 建议仍然非常受欢迎:)

最佳答案

这可能有效:

SELECT DISTINCT a.value, a.attribute_definition_id, 
(SELECT TOP 1 value_rk FROM attribute_values WHERE value = a.value) as value_rk
FROM attribute_values as a
ORDER BY attribute_definition_id

..未测试。

关于sql - 选择一列 DISTINCT SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/251278/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com