0

我有一个类似的 SQL 查询

SELECT SUM(price) FROM budget GROUP BY {{PLACEHOLDER}}

其中 {{PLACEHOLDER}} 将在代码中被替换。是否可以将其替换为与以下语句产生相同输出的内容?

SELECT price FROM budget
4

4 回答 4

5

如果您有一个独特的列,例如自动生成的 id,您可以使用它

SELECT SUM(price) FROM budget GROUP BY budget_id

将等于

SELECT price FROM budget

如果每一行都有不同的budget_id(身份,自动增量字段将适合账单)

现在,我敦促您重新考虑进行这种黑客攻击的智慧,为什么不在重要的地方加上 if 呢?

于 2009-10-21T10:34:07.707 回答
1
...GROUP BY NEWID()

每行随机,因此从不聚合。并与键列、模式等分开

于 2009-10-21T10:44:26.377 回答
0

我的建议是当且仅当占位符存在时,才将 GROUP BY 直接包含在您的占位符中:

if (!empty($placeholder)) {
    $placeholder = 'GROUP BY ' . $placeholder;
}
于 2009-10-21T10:35:32.200 回答
0

如果我理解正确,您希望通过有效省略组。在这种情况下,将其设为 GROUP BY ROW_ID 这将产生相同的结果

于 2009-10-21T10:36:20.747 回答