请问如何用sql语句改变某字段的内容?

来源:百度知道 编辑:UC知道 时间:2024/05/27 23:27:36
如有一个名为list的字段,他的某个值为“11,21,31,41,51”,用sql语句将他改为“21,31,41,51,11"(即前一个到最后个),list字段的其他值也一样的改变,请问如何实现?
要list字段(字符串)所有的值都像上面一样改变,"11,21,31,41,51"只是其中的一个值

update list1 SET list = RIGHT(t1, LEN(t1) - CHARINDEX(',', t1)) + ',' + LEFT(t1, CHARINDEX(',', t1) - 1)

update 表 set list ='21,31,41,51,11' where list = '11,21,31,41,51' 不对的话用like试试...跟你list字段的数据格式有关..

用循环,先取到该字段值然后进行处理得到结果后用update语句更新该记录

不能直接处理,sql没有那么复杂的函数(或许我还不知道)
只能用循环,取出值后然后处理下,再更新下
一次批量下来,很快

不知道是不是这个意思哈
declare @a int,@b nvarchar(255),@c nvarchar(255),@d nvarchar(255),@e nvarchar(255),@f nvarchar(255)
set @b='jsdklf,djfkojc,xj'--假如字符串为这个
select @a=charindex(',',@b)--获取第一个逗号的下标
select @d=left(@b,@a-1)--获得第一个逗号前面的字符串
select @c=reverse(@b)--翻转原字符串
select @e=charindex(',',@c)--获得翻转后的第一个逗号的下标
select @f=reverse(left(@c,@e-1))--获得翻转后的第一个逗号前的字符串,再翻转回来就等于没反转了
select @c=right(@b,(len(@b)-@a+1))
select @c = left(@c,(len(@c)-@e+1))--这两句就获得第一个逗号和倒数第一个之间的字符串
select @b=@f+@c+@d相加吧,得出来咯

没时间想其他方法,这应该是最笨的办法,恩,下班那了