SQL数据库中有命令语句能把2000-1-001-01-1最后的一位数值填充成001吗求大神

SQL数据库中有命令语句能把2000-1-001-01-1最后的一位数值填充成001吗求大神,第1张

如果你确定出了最后一位,前面都是固定长度的就好办

UPDATE

TABLE

SET

COLNAME=

(

CASE

length(SUBSTR(

COLNAME ,14))

WHEN

1

THEN

SUBSTR(

COLNAME ,1,14)||'00'||SUBSTR(

COLNAME ,14)

ELSE

SUBSTR(

COLNAME ,1,14)||'0'||SUBSTR(

COLNAME ,14)

END

)

这里后面我假设补充的是三位。。经过测试

能达到要求

单独写个insert 语句('001') 直接运行,看能否保存进去 ,如果可以的话 ,就是java代码有问题,如果不行,看一下字段是否配置的有问题,varchar 型理论上是可行的

建立一个基础数据库(编号与名称一一对应的基础数据库)

用vlookup函数自动根据编号引用基础库中的值

展示表E2的公式:=VLOOKUP($C$2,基础数据!$A:$B,2,0)

展示表B1(表头)的公式:=VLOOKUP($C$2,基础数据!$A:$B,2,0)&"的说明书"

错误的大概意思就是,数据库中你要修改的字段本来没有有主键约束或唯一约束,而现在你要在这个字段上加上主键或唯一约束,如果数据库中没有数据这样做当然不会有任何问题,可是从你的错误来看你的数据库中已经有了数据,而且在你要修改的字段上有重复的数据

例如:你的数据库中有两个字段id,name,此时你的数据库中的数据:001,zhangsan;002,lisi;003,zhangsan,此时你在name字段上加主键约束或唯一约束的话就会出你说的错误

解决办法:

1、如果你的数据库允许你现有的数据有重复的数据,你可以在可视化界面下建立主键或约束,在完成那一步里有个选项会询问是否检测现有数据,勾掉就可以了

2、如果你的数据库不允许你现有的数据有重复的数据,这样就比较麻烦了,你可以再别的列上加约束,也可以用多列上建立约束

注:其中有些地方说的不一定准确,还请以事实为依据

你这个需求比较扯,所谓自增都是整数才能做加法自增,字符串怎么自增。另外也不知道你的是什么数据库,但是如果在oracle或者sqlserver中,可以通过建立sequence以及触发器来实现你这个扯淡的需求。先通过sequence获取下一个整数值,然后在触发器中在数据插入之前取出来这个整数值,然后和字符串abc组合成你要的字符串,0要你自己补,将这个组合好的字符串插入到id字段中。但是这样做特别特别不好。建议你在程序里 *** 作,不要放在数据库中做这种事

在你导入数据库时 sql会自动转换为int类型 及数字类型 所以前面的0就不见了 如果你想导入的时候有前面的0 你可以在001后面加一个空格 这样就可以给你转换为字符串类型 前面的0就能保存了!

用select for update wait可以实现, 例如:

BEGIN TRANSACTION;

SELECT ITEM_ID FROM TABLE_ITEM WHERE ITEM_PRIORITY > 10 AND ITEM_CATEGORY = 'CT1'

ITEM_STATUS = 'available' AND ROWNUM = 1 FOR UPDATE WAIT 5;

UPDATE [locked item_id] SET ITEM_STATUS = 'unavailable';

COMMIT TRANSACTION;

以上就是关于SQL数据库中有命令语句能把2000-1-001-01-1最后的一位数值填充成001吗求大神全部的内容,包括:SQL数据库中有命令语句能把2000-1-001-01-1最后的一位数值填充成001吗求大神、MySQL,java添加字符串数据时,比如“001”这个字符串,添加后前面的0没了,只剩下"1"、EXCEL中输入编号如何自动加入名称等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9642414.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存