字符串如何取字段最大值再加1

时间:2021-10-25 15:10:10

有表comProduct ,    字段  ProdId(字符串类型)
          0021001
          0021002
          0021004           
如何取到ProdId最大值再+1(0021005)

15 个解决方案

#1


解析下面的SQL就可以得到了
SELECT MAX(CAST(ProdId AS INT)) AS MAXProdId FROM YOURTABLE

#2


将字符串取到程序中在程序中进行字符串处理,将字符串转化为整形或其他数字类型。

#3


select to_number(max(ProdId))+1 from comProduct 

#4


引用 1 楼 zyq5945 的回复:
解析下面的SQL就可以得到了
SELECT MAX(CAST(ProdId AS INT)) AS MAXProdId FROM YOURTABLE


值是可以加了,但是后面的要怎么显示回去字符串的呢? 求解。。 (也就是得到0021005)

#5


引用 3 楼 lyliu602 的回复:
select to_number(max(ProdId))+1 from comProduct 

请问 to_number  是什么? 好像不是函数

#6


引用 2 楼 yongzhen150 的回复:
将字符串取到程序中在程序中进行字符串处理,将字符串转化为整形或其他数字类型。


那我后面返回的值还要字符串的,怎么办?

#7


引用 6 楼 u011780236 的回复:
Quote: 引用 2 楼 yongzhen150 的回复:

将字符串取到程序中在程序中进行字符串处理,将字符串转化为整形或其他数字类型。


那我后面返回的值还要字符串的,怎么办?
可以用CString的Format

#8


引用 7 楼 xianglitian 的回复:
Quote: 引用 6 楼 u011780236 的回复:

Quote: 引用 2 楼 yongzhen150 的回复:

将字符串取到程序中在程序中进行字符串处理,将字符串转化为整形或其他数字类型。


那我后面返回的值还要字符串的,怎么办?
可以用CString的Format


能不能就上面的数据 写个SQL 语句给我看看 那个CString用法不知道怎么弄。

#10


引用 8 楼 u011780236 的回复:
Quote: 引用 7 楼 xianglitian 的回复:

Quote: 引用 6 楼 u011780236 的回复:

Quote: 引用 2 楼 yongzhen150 的回复:

将字符串取到程序中在程序中进行字符串处理,将字符串转化为整形或其他数字类型。


那我后面返回的值还要字符串的,怎么办?
可以用CString的Format


能不能就上面的数据 写个SQL 语句给我看看 那个CString用法不知道怎么弄。
sql语句?
CString是MFC的东西
你的问题是纯sql的么?

#11


引用 10 楼 xianglitian 的回复:
Quote: 引用 8 楼 u011780236 的回复:

Quote: 引用 7 楼 xianglitian 的回复:

Quote: 引用 6 楼 u011780236 的回复:

Quote: 引用 2 楼 yongzhen150 的回复:

将字符串取到程序中在程序中进行字符串处理,将字符串转化为整形或其他数字类型。


那我后面返回的值还要字符串的,怎么办?
可以用CString的Format


能不能就上面的数据 写个SQL 语句给我看看 那个CString用法不知道怎么弄。
sql语句?
CString是MFC的东西
你的问题是纯sql的么?
 是的  我想在纯SQL 里面写出那值  问题在于 如有前面有0这字符串值 就不好加数值 返回的值就成整形了 前面的“00”字符串就会没了

#12


没解决,感谢你们的回答。我去SQL专区看看 ,,这边就结贴了!

#13



SELECT  ('00' + CAST((MAX(CAST(ProdId AS INT)) + 1) AS varchar(50))) as ID
  FROM comProduct

先转整型加一,然后再转字符型,字符串前加“00”

#14


引用 12 楼 u011780236 的回复:
没解决,感谢你们的回答。我去SQL专区看看 ,,这边就结贴了!

噗~  刚结贴 你就发了  +‘00’ 是固定了  我这值是不固定的! 要是多个‘0’或者前面没‘0’了 值不都改变了

#15


引用 13 楼 sg_knight 的回复:

SELECT  ('00' + CAST((MAX(CAST(ProdId AS INT)) + 1) AS varchar(50))) as ID
  FROM comProduct

先转整型加一,然后再转字符型,字符串前加“00”

噗~  刚结贴 你就发了  +‘00’ 是固定了  我这值是不固定的! 要是多个‘0’或者前面没‘0’了 值不都改变了

#1


解析下面的SQL就可以得到了
SELECT MAX(CAST(ProdId AS INT)) AS MAXProdId FROM YOURTABLE

#2


将字符串取到程序中在程序中进行字符串处理,将字符串转化为整形或其他数字类型。

#3


select to_number(max(ProdId))+1 from comProduct 

#4


引用 1 楼 zyq5945 的回复:
解析下面的SQL就可以得到了
SELECT MAX(CAST(ProdId AS INT)) AS MAXProdId FROM YOURTABLE


值是可以加了,但是后面的要怎么显示回去字符串的呢? 求解。。 (也就是得到0021005)

#5


引用 3 楼 lyliu602 的回复:
select to_number(max(ProdId))+1 from comProduct 

请问 to_number  是什么? 好像不是函数

#6


引用 2 楼 yongzhen150 的回复:
将字符串取到程序中在程序中进行字符串处理,将字符串转化为整形或其他数字类型。


那我后面返回的值还要字符串的,怎么办?

#7


引用 6 楼 u011780236 的回复:
Quote: 引用 2 楼 yongzhen150 的回复:

将字符串取到程序中在程序中进行字符串处理,将字符串转化为整形或其他数字类型。


那我后面返回的值还要字符串的,怎么办?
可以用CString的Format

#8


引用 7 楼 xianglitian 的回复:
Quote: 引用 6 楼 u011780236 的回复:

Quote: 引用 2 楼 yongzhen150 的回复:

将字符串取到程序中在程序中进行字符串处理,将字符串转化为整形或其他数字类型。


那我后面返回的值还要字符串的,怎么办?
可以用CString的Format


能不能就上面的数据 写个SQL 语句给我看看 那个CString用法不知道怎么弄。

#9


#10


引用 8 楼 u011780236 的回复:
Quote: 引用 7 楼 xianglitian 的回复:

Quote: 引用 6 楼 u011780236 的回复:

Quote: 引用 2 楼 yongzhen150 的回复:

将字符串取到程序中在程序中进行字符串处理,将字符串转化为整形或其他数字类型。


那我后面返回的值还要字符串的,怎么办?
可以用CString的Format


能不能就上面的数据 写个SQL 语句给我看看 那个CString用法不知道怎么弄。
sql语句?
CString是MFC的东西
你的问题是纯sql的么?

#11


引用 10 楼 xianglitian 的回复:
Quote: 引用 8 楼 u011780236 的回复:

Quote: 引用 7 楼 xianglitian 的回复:

Quote: 引用 6 楼 u011780236 的回复:

Quote: 引用 2 楼 yongzhen150 的回复:

将字符串取到程序中在程序中进行字符串处理,将字符串转化为整形或其他数字类型。


那我后面返回的值还要字符串的,怎么办?
可以用CString的Format


能不能就上面的数据 写个SQL 语句给我看看 那个CString用法不知道怎么弄。
sql语句?
CString是MFC的东西
你的问题是纯sql的么?
 是的  我想在纯SQL 里面写出那值  问题在于 如有前面有0这字符串值 就不好加数值 返回的值就成整形了 前面的“00”字符串就会没了

#12


没解决,感谢你们的回答。我去SQL专区看看 ,,这边就结贴了!

#13



SELECT  ('00' + CAST((MAX(CAST(ProdId AS INT)) + 1) AS varchar(50))) as ID
  FROM comProduct

先转整型加一,然后再转字符型,字符串前加“00”

#14


引用 12 楼 u011780236 的回复:
没解决,感谢你们的回答。我去SQL专区看看 ,,这边就结贴了!

噗~  刚结贴 你就发了  +‘00’ 是固定了  我这值是不固定的! 要是多个‘0’或者前面没‘0’了 值不都改变了

#15


引用 13 楼 sg_knight 的回复:

SELECT  ('00' + CAST((MAX(CAST(ProdId AS INT)) + 1) AS varchar(50))) as ID
  FROM comProduct

先转整型加一,然后再转字符型,字符串前加“00”

噗~  刚结贴 你就发了  +‘00’ 是固定了  我这值是不固定的! 要是多个‘0’或者前面没‘0’了 值不都改变了