Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从c中的oracle表中选择最大值_C#_Sql_Oracle_Max - Fatal编程技术网

C# 从c中的oracle表中选择最大值

C# 从c中的oracle表中选择最大值,c#,sql,oracle,max,C#,Sql,Oracle,Max,我有一个OracleConnection命令,用于在使用OracleConnection的C应用程序中从oracle表中选择type NUMBER的最大值。当代码被执行时,我得到的值末尾有M个字母!所以如果我们假设最大值是2544,那么我得到2544M作为最大值 代码如下: OracleCommand command = new OracleCommand("SELECT GREATEST(TA_Counts) FROM Test3.Trn_Sfd", Con2); Con2.Open(); v

我有一个OracleConnection命令,用于在使用OracleConnection的C应用程序中从oracle表中选择type NUMBER的最大值。当代码被执行时,我得到的值末尾有M个字母!所以如果我们假设最大值是2544,那么我得到2544M作为最大值

代码如下:

OracleCommand command = new OracleCommand("SELECT GREATEST(TA_Counts) FROM Test3.Trn_Sfd", Con2);
Con2.Open();
var returvalue = command.ExecuteScalar();

为什么值不作为2544 int值返回

因为该值是十进制的。发生这种情况的原因是表中列的类型。您可以通过查看表来验证这一点。如果数据类型是integer或float,则读取器返回的.net类型为decimal

最大值不会为您提供表的最大值:

SQL> with t as (
  2    select 1 id, 2 value from dual union all
  3    select 2 id, 4 value from dual
  4  )
  5  select GREATEST(id)  
  6    from t
  7  /

GREATEST(ID)
------------
           1
           2
最大值函数提供多个值中的最大值,如:

SQL> ed
Wrote file afiedt.buf

  1  with t as (
  2    select 1 id, 2 value from dual union all
  3    select 2 id, 4 value from dual
  4  )
  5  select GREATEST(id, value)
  6*   from t
SQL> /

GREATEST(ID,VALUE)
------------------
                 2
                 4
您必须使用max函数:

SQL> ED
Wrote file afiedt.buf

  1  with t as (
  2    select 1 id, 2 value from dual union all
  3    select 2 id, 4 value from dual
  4  )
  5  select max(id)
  6*   from t
SQL> /

   MAX(ID)
----------
         2
您可能需要使用隐式转换:

(int)command.ExecuteScalar()
使用你需要的类型