‘壹’ sql 语句问题 把某列的数据全部+1
给你提供个思路,你可以用替换的方法,如果含有字母的,放到一个map中对应,map的key放去掉字母的木粉,map的value放原值,然后给key值加1值,用以替换value中的数字。如果不含字母,直接加1
‘贰’ sql中使字符串自动加1.例如:2012120001加1变成2012120002;2012120009加1变成2012120010,如下图所示:
这个很简单,用序列。Create Sequence
你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限,
CREATE SEQUENCE SEQ1(序列名)
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10;
‘叁’ SQL语句能直接操作一张表的某个值加1,或者减1么具体语句应该怎么写
sql语句将一个表的某个值加1或减1,直接用update语句即可。
工具:mysql 5.6
步骤:
1、如图,student表中有如下数据:
‘肆’ sql 取字符串的值 并加一
不同的有不同方法的额,支持正则就很快,不支持就使用自定义函数实现。
正则方法(Oracle)
SELECT SUBSTR('WIN000018'
,1
,LENGTH('WIN000018') -
LENGTH(REGEXP_REPLACE('WIN000018', '[^0-9]+0+', ''))) ||
TO_CHAR(TO_NUMBER(REGEXP_REPLACE('WIN000018', '[^0-9]', '')) + 1)
FROM DUALCREATE
FUNCTION [dbo].[GET_NUMBER_ADD1](@P VARCHAR(100)) RETURNS VARCHAR(100)
AS
BEGIN
DECLARE @S NVARCHAR(100)
DECLARE @R NVARCHAR(100)
DECLARE @I INT
DECLARE @J INT
SET @I=LEN(@P)
SET @S = @P
WHILE PATINDEX('%[^0-9]%',@S) > 0
BEGIN
set @s=stuff(@s,patindex('%[^0-9]%',@s),1,'')
END
SET @J= convert(int,@s)+1
set @R=right('00000000'+convert(nvarchar,@j),len(@i))
set @R= left(@p,@i-len(@i))+@R
RETURN @R
END
--select GET_NUMBER_ADD1('WIN000018') from temp
‘伍’ sql 新增 加1的语句怎么写
sql = "update CxInfo set C_Read=1 where id = "&CxId
sql= sql & " update c_user set C_Level=C_Level+1 "
如果SQL可以写在一起
如果是ACCESS好像不能写一起.
2个语句要分开执行
-1么 第二句换成-1
‘陆’ SQL varchar类型里面的数字+1
此处例子----sql server
对于字符类型的有:
char:固定长度,存储ANSI字符,不足的补英文半角空格。
nchar:固定长度,存储Unicode字符,不足的补英文半角空格
varchar:可变长度,存储ANSI字符,根据数据长度自动变化。
nvarchar:可变长度,存储Unicode字符,根据数据长度自动变化。
也就是说:varchar 可变长度,
varchar(50)即长度为:50个字符
当有存入值时,就跟据实际的值的大小(长度)存入数据。
‘柒’ 为sql一字段值中每个特定字符前的最后一个数字加1怎么处理
这个需要用到plsql(过程、语句块)编程:
1.
按照顿号拆分
2.
取倒数第一个字符+1,如果>10则赋值为0
3.
循环完成后使用顿号连接起来,更新到该行,ok。
‘捌’ SQL数据库字段加减一个定量的实现语句。
这是一个相对复杂的处理,^_^,思路如下:
1.将PAS00000000055956的前3位PAS截取下来
2.将PAS00000000055956中的后14位数字截取下来,并转换成数字,然后与9000000相加
3.将加的结果转换为字符串,并与'0000000000000'进行拼接,
4.对拼接的字符串进行取得最右边的14位,这样保留了原来的PAS00000000055956的后面的14位长度不变
5.对取得的结果与第1步截取下来前3位PAS进行拼接,这样得到了最后的结果,
具体的SQL语句如下:
substring(PAS00000000055956,1,3)+right('0000000000000'+cast((cast(substring(PAS00000000055956,4,14) as int) +9000000) as varchar(14)),14)
呵呵,希望能有帮助,^_^
‘玖’ A表里的字段B是varchar类型、数值都是XY00002900这样的。要给后四位加1.请问sql怎么写
update A set b= left(b,2) + right('00000000' + trim(convert(varchar(8),cast(right(b,8) as int)+1)),8) --- +1 是要加的数
where b='xy00002809'
‘拾’ 想请问 如果是想让数据库里的某一列数值加1 怎么写update 语句合适呢
1、创建测试表,create table test_update(id number);