![]() |
1
11
这可能有效:
…未测试。 |
![]() |
2
8
换句话说,找到行
|
![]() |
3
8
这应该对PostgreSQL有效,我不知道您使用哪种DBMS。
|
![]() |
4
2
这就是你要找的吗?
如果值是唯一的,这应该是有效的。 |
![]() |
5
2
好吧,我的假设是: 标准SQL Server 值“rk”不是数值,而是值和属性“definition”id 是 数字的。
如果其中一个字段不是数字,则需要更多的考虑-请告诉我们。 |
![]() |
6
2
如果您愿意使用表变量,可以将其全部保存在单个数据库调用中,如下所示:
实际上,您正在创建一个有限的记录集,其中表中填充了唯一值“value”,并让SQL Server仅使用主表中的一个匹配项来填充间隙。 编辑后添加:此语法在cfquery中工作正常。 |
![]() |
7
1
没有测试过! |
![]() |
8
1
我不确定我是否完全理解您的设置,但是否需要这样的工作:
再说一次,我不确定你想限制哪一列,或者你想如何限制它。 |
![]() |
9
0
没有我想要的那么优雅——这本质上就是你所做的,仅仅是在纯SQL中——但是它是有效的,并且可以在SQL中完成。 DECLARE @mytable TABLE(mykey NVARCHAR(512), myVal NVARCHAR(512)) DECLARE @keyVal NVARCHAR(512) DECLARE @depVal NVARCHAR(512) DECLARE myCursor CURSOR for SELECT DISTINCT(value) FROM attribute_values OPEN myCursor FETCH NEXT FROM myCursor INTO @keyVal WHILE @@FETCH_STATUS=0 BEGIN SET @depVal = (SELECT TOP 1 attribute_definition_id FROM attribute_values WHERE VALUE=@keyVal ORDER BY attribute_definition_id) INSERT INTO @mytable (mykey, myVal) VALUES (@keyVal, @depVal) FETCH NEXT FROM myCursor INTO @keyVal END DEALLOCATE myCursor SELECT * FROM @mytable 可以使用此方法添加Depval2和其他。 |
![]() |
10
0
我想
工作 |
![]() |
11
0
正如John Fiala所指出的,SQL Server中的规范化答案是,当您希望对列的子集执行“distinct”操作时,使用group by子句。为什么这是正确的规范答案?好吧,您希望拉入不属于“distinct”组的列。您要为这些辅助列拉入哪些行?使用group by子句并为这些子列定义聚合函数,可以使查询在您现在知道如何获取这些子列的意义上表现良好。本文提供了更多详细信息: http://weblogs.sqlteam.com/jeffs/archive/2007/10/12/sql-distinct-group-by.aspx
另外,值得注意的是,最小值和最大值用于文本和其他一些非数值数据类型。 |
![]() |
Duvan · 将逗号(,)替换为点(.)[副本] 2 年前 |
![]() |
Mateen Bagheri · 选择表的计数并选择其自身 2 年前 |
![]() |
SoT · SQL Server中求和函数的工作方式 2 年前 |
![]() |
NKAT · 将列值聚合到列表中会产生错误 2 年前 |
![]() |
deanpillow · 返回两列中有一个匹配值的记录 2 年前 |
![]() |
snowflakes74 · 在Dapper中异步查询多个结果 2 年前 |