日期:2014-05-18  浏览次数:21372 次

传入一个sql语句,返回第一行第一列,怎样效率最高?
假设返回的数据只有一行一列。

------解决方案--------------------
SQL: select top 1 列名 from 表名
c#: SqlCommand 的 ExcuteSclare();//好像是这样写

还两个是最高的


------解决方案--------------------
DataReader.ExcuteSclare()
------解决方案--------------------
ExcuteSclare()返回第一条记录的第一列
------解决方案--------------------
SqlCommand scmd=new SqlCommand();
scmd.Connection=new SqlConnection("Data Source=...");
scmd.CommandText="select orderNumber from orders where orderId=113";
scmd.Connection.Open();
scmd.ExecuteScalar();
scmd.Connection.Close();

------解决方案--------------------
上面写掉了,应该加上

SqlDataReader sdr对象

...
sdr=scmd.ExecuteScalar();
sdr.Read();//先调用一次可用
sdr.GetInt32(0);
------解决方案--------------------
select top 1 列名 from 表名 order by 列名 
选择该列的第一个值
不知道你是哪里不明白

------解决方案--------------------
SQL SERVER : select top 1 列名 from 表名 order by 列名
 Oracle : select * from (select 列名 from 表名 order by 列名 ) where rownum = 1