Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1221476
  • 博文数量: 788
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 7005
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-19 15:52
文章存档

2017年(81)

2011年(1)

2009年(369)

2008年(337)

分类:

2009-05-12 16:04:35



我用的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:游标应该是指向刚插入的记录吧(前提:插入数据后还没有做任何操作)



--------------------------
新闻:微软触控平台Surface SP1发布
网站导航: 博客园首页  新闻  .NET频道  社区  博问  闪存  找找看
阅读(332) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~