这些SQL语句如何写
http://www.delphi2007.net/DelphiDB/html/delphi_20061215171559287.html
我用的access2000,我建了个表名为:JLGL,表里有个字段:Jan(数字类型)
问题1:现在我想获得这个字段的左边4个不重复的数字我是这样写的:
select a.Jan from (select distinct Left(Jan,4) from JLGL) a 可程序说是错的,请问这个语句怎么写?
问题2:我想查询Jan字段等于20068或者等于20069的所以数据,所以我就这样写了个sql语句:select * from JLGL where Jan=20068 or Jan=20069 可程序也说这个是错的,请问该怎么写?
问题3:请问如何不通过条件查询而直接获得刚插入表里的数据,谢谢
问题2:select * from JLGL where Jan='20068' or Jan='20069'没有加引号
1.获得这个字段的左边4个不重复的数字
select jan from jlgl where left(jan,4) not in (SELECT Left(jan,4) AS jan1 FROM jlgl GROUP BY Left(jan,4) HAVING Count(*)>1)
2.应该没错(数字类型不用引号),你可在access中试一下
3.好像不能
问题1:
你的第一个语句肯定是要报错的啊,
select a.Jan from (select distinct Left(Jan,4) as Jan from JLGL) a
这样应该就可以,也就是在Left(Jan,4)后面加上别名。
问题2:
应该是没有错
问题3:
好像不可以
问题3,那是不可能的。
不过,如果你的表里有表示序列的字段,就可以的
select * from table order by [序列字段] desc
第一条数据就是最新加入的。
问题3sqlserver好像有个物理rowid
在access中select * from JLBZPT where JDZQ>0 and GLZT='ZY' and len(SYBM)>0 and len(JDBM)>0 and left(YXRQ,6)='"+year+"' and JDJG='MJ'该如何写才正确
问题2正确的是:select * from JLGL where [Jan]='20068' or [Jan]='20069'
问题3:游标应该是指向刚插入的记录吧(前提:插入数据后还没有做任何操作)