c# sql select 单独取出某个字段的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# sql select 单独取出某个字段的值相关的知识,希望对你有一定的参考价值。

select StockHolderNam,StockHolderCat,StockHoldNum,PricePerStock,Tel,MobilePhone from StockHolderInf
这个是数据库语句,我用的语言是C#,数据库是SqlServer,然后我现在想单独取出比如StockHolderNam,这个字段的值,赋值到string用做其他地方,请问要怎么写

不知道你想取的是一个值还是StockHolderNam这一列的值
如果想取一个值在sql语句后面加个限制条件然后用
SqlDataReader sdr=cmd.ExecuteReader();//cmd 是sqlcommand
sdr.Read();
string xx=sdr["StockHolderNam"].ToString();
如果想取一列的值最好用Datatable
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
DataRow dr = dt.Rows[0];//第一值
String xx=dr["StockHolderNam"].ToString();
后面的以此类推
参考技术A 精确查询一般以PK值为条件,所以只取一行.
用dataset接收.
ds.Tables[0].rows["StockHolderNam"].toString();

oracle SQL 取出每个分组的按照日期最新一条记录,同时还显示每个分组某个字段的总和

如:table test
code num price date
a 1 10.00 2014-04-01
a 2 20.00 2014-04-02
a 3 30.00 2014-04-03
b 2 20.00 2014-04-07
b 1 10.00 2014-04-03
b 5 22.00 2014-04-01
以code 字段分组,并取每个分组日期最新的一条记录以及每个分组num字段的值的总和
结果:
code num price date SUM(num)
a 3 30.00 2014-04-03 6
b 2 20.00 2014-04-07 8

--用外链接把AA表和CC表链接起来查询就可以了
SELECT AA.CODE, AA.NUM, AA.PRICE, CC.DATETIME, CC.SUMNUM
  FROM test AA
  --下面的BB表查询的是根据code分组查询num求和及最大datetime,之后作为一个表CC
  LEFT JOIN (SELECT BB.CODE, SUM(NUM) SUMNUM,MAX(BB.DATETIME) DATETIME
               FROM test BB
              GROUP BY BB.CODE) CC
    ON AA.CODE = CC.CODE
 WHERE AA.DATETIME = CC.DATETIME

 --其中DATETIME字段就是你表中的date字段

参考技术A select code,num,price,date,sum_num
from (
select code,num,price,date,row_number() over (partition by code order by date desc) rn,
sum(num) over (partition by code) sum_num
from table_name --这一行之前没加,引起误会,抱歉..
) a
where rn=1本回答被提问者采纳
参考技术B 使用组函数SQL和表连接来实现,代码如下:
select aa.*,bb.sumnum from (select * from test where (code,date) in (select code,max(date) from test group by code)) as aa join (select code,sum(num) as sumnum from test group by code) as bb on aa.code==bb.code
参考技术C select a.code,a.num,a.price,a.date1,b.sum1
from test a,(select code,max(date1) date1,sum(num) sum1 from test group by code) b
where a.code=b.code and a.date1=b.date1
;
code和date做为组合关键字必需唯一,否则没法实现你目前的需求

以上是关于c# sql select 单独取出某个字段的值的主要内容,如果未能解决你的问题,请参考以下文章

Python取出SQL表单中的字段名

如何在一个sql里单独查询一个字段

SQL 或 C#:遍历一个字段的值并插入另一个字段

MYSQL如何根据变量的值来选择字段进行查询

oracle SQL 取出每个分组的按照日期最新一条记录,同时还显示每个分组某个字段的总和

SQL求助:对一个字段里重复数据,取出不同数据的前两个