CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

此sql语句怎么写?怎么设定?

楼主nic7968(得不到的往往是最差)2004-11-01 11:57:40 在 MS-SQL Server / 基础类 提问

查询某列最大值,然后实现+1   显示。例如,查询的最大值是99,那么最后的显示就是100。  
  我这样写是错误的,select   max(nic)+1   as   nicnic   from   nic7968   其中nic类型是nvarchar类型,怎么写呢? 问题点数:20、回复次数:18Top

1 楼nic7968(得不到的往往是最差)回复于 2004-11-01 12:01:49 得分 0

upTop

2 楼zhang_yzy(六子儿)回复于 2004-11-01 12:05:16 得分 0

你试一下  
  select   max(cast(nic   as   int))+1   as   nicnic   from   nic   7968  
  若数据超过int范围的话,更改类型名Top

3 楼27257674(烈火£焰冰)回复于 2004-11-01 12:18:36 得分 0

nic类型为nvarchar:你用他记录什么?是比如ID类型的整形值,还是存的像姓名之类的汉字呢  
  如果存的是整形值:select   max(cast(nic   as   bigint))+1   as   nicnic   from   nic7968  
  如果是存放的汉字:1:select   max(nic)   as   nicnic   from   nic7968:返回汉字最多的那个  
   
           2:select   len(max(nic))+1   as   nicnic   from   nic7968  
   
  返回汉字最多的那个单位所占的位数+1Top

4 楼yesyesyes()回复于 2004-11-01 12:27:13 得分 0

如果你的nvarchar中是数字字符,可直接用max(nic)+1,你的语句没错.Top

5 楼nic7968(得不到的往往是最差)回复于 2004-11-01 13:55:18 得分 0

谢谢各位,但上面所说的我都试过了,还是不行。  
  nic   列存放的是   字符和数字组成的id,如:nic0001,nic0002,nic0003……nic0089,nic0090这样下去,怎么实现查询加1呢?  
  Top

6 楼liweiswin(▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲)回复于 2004-11-01 14:02:49 得分 0

select   str(left(nic,3))+str(int(right(nic,4))+1)   as   nicnic   from   nic7968Top

7 楼nic7968(得不到的往往是最差)回复于 2004-11-01 14:12:11 得分 0

昏,看起来有些道理,但还是不行。  
  'int'   不是可以识别的   函数名。Top

8 楼liweiswin(▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲)回复于 2004-11-01 14:16:15 得分 0

你是在查询分析器里写的吗?Top

9 楼nic7968(得不到的往往是最差)回复于 2004-11-01 14:24:14 得分 0

dui对啊Top

10 楼yesyesyes()回复于 2004-11-01 14:29:32 得分 10

select   'nic'+(right(max(nic),4))+1)   as   nicnic   from   nic7968  
  Top

11 楼lightJing()回复于 2004-11-01 14:33:42 得分 10

select   'nic'+replace(str(right(isnull(max(nic),0),4)+1,4),space(1),'0')   from   nic7968Top

12 楼nic7968(得不到的往往是最差)回复于 2004-11-01 14:42:11 得分 0

lightJing()   :  
    写的不错,看起来挺复杂的,如果是nic040001,nic04002,……nic040099,这样的字母和数据组成,我怎么修改哦?Top

13 楼long0104()回复于 2004-11-01 14:43:50 得分 0

 
  select   max(re)+1   as   re   from   a   就这样可以的,re用nvarcharTop

14 楼nic7968(得不到的往往是最差)回复于 2004-11-01 14:46:13 得分 0

long0104()    
  但我用了,就是不行  
  转换不了int类型Top

15 楼tjzym(天远水寒)回复于 2004-11-01 15:02:33 得分 0

不用int,用intger试一试!!!Top

16 楼nic7968(得不到的往往是最差)回复于 2004-11-01 15:40:29 得分 0

hun!Top

17 楼nic7968(得不到的往往是最差)回复于 2004-11-01 15:42:23 得分 0

好了,!~  
  结帖,非常感谢各位!~Top

18 楼funsuzhou(☆【处变不惊】☆)回复于 2004-11-01 15:49:57 得分 0

这样不行吗?  
  select   结果=max(cast(nic   as   decimal))+1   from   nic7968  
  Top

相关问题

  • 写SQL语句???
  • 主键设定 求一条sql语句
  • 求写SQL语句
  • 求写SQL语句,
  • $$求写SQL语句$$
  • 求写 sql 语句
  • sql 语句写法.
  • sql语句写法
  • sql语句写法
  • sql语句编写??

关键词

  • 查询
  • nic
  • from nic7968
  • 类型
  • max
  • 不行
  • nvarchar
  • as nicnic
  • cast
  • re

得分解答快速导航

  • 帖主:nic7968
  • yesyesyes
  • lightJing

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo