此sql语句怎么写?怎么设定?
查询某列最大值,然后实现+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




