【问题标题】:Stored Procedures reading a value of Min()读取 Min() 值的存储过程
【发布时间】:2013-07-15 10:35:38
【问题描述】:

我正在尝试在特定表中查找类型为 (int) 的主键列的最小值

我的存储过程代码的一部分:

IF NOT EXISTS
(
    SELECT *
    FROM Table
)
BEGIN
    SELECT *
    FROM Table
END

ELSE
   BEGIN
      SELECT Min(ColumnOne)
      FROM Table
   END

这是我阅读后的主要代码:

if (!reader.Read())
    return "EMPTY TABLE";
else
    return reader.GetInt32(0).ToString();   

我的 ExecuteReader 没有问题,但是当我在语句中遇到异常时

reader.GetInt32(0).ToString()

我相信当我的表格有多个条目时,我错误地提取了信息。我应该从读者那里调用以获得号码的正确功能是什么?

【问题讨论】:

  • 您在上面的代码中使用了 MAX,您不想要 MIN 吗?
  • 那么如何从表格中获取最大数量?
  • @christiandev 我只是引用一个例子,在获取 Min 和 Max 时代码应该相同
  • MIN 不会改变(除非您也可以从表中删除),但 MAX 会随着新插入而频繁更改。
  • Ok.. 我改成 Min.. 如何获得 Min 值?

标签: stored-procedures sqldatareader


【解决方案1】:

我没有收到您的问题。 正如您在问题中指定 min() 值并且您在 T-SQL 脚本中编写了 max() 函数。

如果您想检索列的下一个 Val,您可以在下面尝试

Select isnull(max(ColumnOne),0)+1 FROM Table

以上查询将返回您 1 如果表为空 else max current Value+1(下一个可用值) 来自表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-01
    • 1970-01-01
    • 2017-01-18
    • 2018-10-27
    相关资源
    最近更新 更多