求一个SQL的语句

来源:百度知道 编辑:UC知道 时间:2024/05/22 03:29:39
我是一个SQL初学者,有一个问题请教各位,我想在一个表中的现有列的所有数据的后面加入一个数字1,用什么语句??还有删除这个1用什么语句.
比如:列名 ID 名字 密码
1 张三 111
2 李四 222
我想在张三和李四后面都加1变成张三1和李四1
用update 表名
set 名字=名字+'1'
可以实现
但是想把后加的1删除
用update 表名
set 名字=名字-'1'
就会出现将 nvarchar 值 '张三1' 转换为数据类型为 int 的列时发生语法错误。
怎样办???

补充说明:

其实感觉上如果col不是数值那么+1现实意义不大吧,所以我才默认是数值的,如果你想通用那么该换成下面第二条式:

表名tablename 列名col1 col2 col3

update tablename set col1=col+1 ,col2=col2+1
, col3=col3+1;

update tablename set col1=col+'1' ,col2=col2+'1'
, col3=col3+'1';

现在再说下如果在col是字符的情况下如何删除加上去的1
立足于实际问题,就以你给出的表为例,你想在人名后面加1和减1,如果你的人名有叫:张1三,李1四,1王五的,那么就不用看下去了,如果没有,假设你是用sql server而不是oracle可以这样做

表叫 table 列 name
update tablename where right(name,1)='1'
set name=subtring(name,1,charindex('1',name)-1);

这样就可以删除人名右边的1,你加了多少就可以删多少

ps: 其实这个问题是不太现实的,只能纯粹是从技术上来讨论,真的要做的时候,建议千万不要有这样的想法,+1这些操作还是留给数值列吧

比如说 student表 列 ID 名字 name 密码password
我要显示 名字是 密码是 可以这样
select 名字是=name, 密码是=password from student(改变列名)
如果想在查询 里添加字的话
可以使用
select '名字是'+name,'密码是'+password from student
名字是 密码是 可以加列前面 也可以加后面