【问题标题】:INSERT INTO a table - SELECT doesn't bring back all records but SUM brings back correct answerINSERT INTO a table - SELECT 不会带回所有记录,但 SUM 会带回正确答案
【发布时间】:2016-07-21 12:24:03
【问题描述】:

我一直在研究向 SQL 表中插入行,并在下面创建了测试代码


DECLARE @ItemSale TABLE (ID INT, Qty INT, Price INT)

INSERT INTO @ItemSale (ID, Qty, Price) 
    VALUES (1, 25, 100) 
INSERT INTO @ItemSale (ID, Qty, Price) 
    VALUES (2, 4, 200)   
INSERT INTO @ItemSale (ID, Qty, Price) 
    VALUES (3, 5, 300)

SELECT 
    *
    --SUM(Price)
FROM 
    @ItemSale

我只取回第一行

ID  Qty Price
1   25  100

当我在 SUM(Price) 中评论(并注释掉 *)时,我得到了

SUM
600

这是我所期望的 谁能帮我理解这里发生了什么?

【问题讨论】:

  • 用您正在使用的数据库标记您的问题。您的代码应该返回所有行。这可能是您使用的界面软件的问题。
  • 假设 t-sql 会如你所愿返回 3 行,你用什么来执行查询?
  • 我刚刚测试了代码。它返回 3 行。
  • 我假设这是基于语法的 SQL Server。我能够复制此行为的唯一方法是首先运行SET ROWCOUNT 1;。也许在运行SET ROWCOUNT 0; 后重试
  • 谢谢运行 SET ROWCOUNT 0 先返回 ID 数量 价格 1 25 100 2 4 200 3 5 300 符合预期

标签: sql sql-server tsql insert


【解决方案1】:

SET NOCOUNT ON 在这种情况下可能会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    相关资源
    最近更新 更多