你的意思死要将B值为5的倍数的记录值修改吗?
用求余数的方式来判断是不是能被5整数,余数大于0说明不是5的倍数,余数为0说明是5的倍数
select from A where B%5=0 --查找出所有B列值是5的倍数的记录
更新的话,改改就可以了
update A set B=0 where B%5=0 --假如把B值为5的倍数的记录B列值修改为0
希望能帮到你……
只能用楼上的 那种方法
最多也就是动态处理一下
declare @Sql varchar(8000)
declare @i int
declare @ColName varchar(255)
set @i = 1
set @Sql = ''
while Exists(select from syscolumns where id = object_id('TEST') and colorder = @i)
begin
select @ColName = name from syscolumns where id = object_id('TEST') and colorder = @i
set @Sql = @Sql + 'union all select '''+@ColName+''' as 名称,cast('+@ColName+' as varchar(100)) as 值 from TEST '
set @i = @i + 1
end
--set @Sql = right(@sql,len(@sql)-9)
set @Sql = stuff(@Sql,1,10,'')
--print @Sql
exec(@sql)
--------------------------------------------------------------------------------------
sqlserver2005里 还有一个 *** 作是
unpiot,你可以查查帮助
不过实现起来也得这么做
--------------------------------
假设 表A内容
ID 数值
1 11
2 12
3 13
--------------------------------
假设 表B内容
ID 列1 列2 列3
1 11 111 1111
2 22 222 2222
3 33 333 3333
------------------------------
SELECT B列1,B,列2,B列3 FROM A,
B WHERE B列2=A数值
得到结果应该是:
----------------------------
ID 列1 列2 列3
1 11 111 1111
2 22 222 2222
3 33 333 3333
-------------------------------
以上是 查出的是 符合B表中的列2 等于 A表 的数值 结果
如果你A表中的值确定了,首先查询A表,先得到条件(查询出的数值作为查询表B的条件)
例如select 数值 from A where ID=1 得到查询条件
那么根据表A的结果 查询表B的语句 就是 Select from B where B列2=(select A数值 from A where AID=1)
得到结果为空,因为B表中列2没有含有11的行
如果把B列2改为B列1,结果会是
---------------------------
ID 列1 列2 列3
1 11 111 1111
------------------------------
你自己试试就知道了
1、创建测试表,create table test_student(stu_id number, class_id number);
2、插入测试数据,
insert into test_student values(1,1001);
insert into test_student values(2,1001);
insert into test_student values(3,1002);
insert into test_student values(4,1003);
insert into test_student values(5,1003);
insert into test_student values(6,1003);
commit;
3、查询数据表中内容,select from test_student ;
4、将列名翻译为中文名进行展示,select stu_id as "学生编码", class_id as "课程编码" from test_student t;
1、在oracle数据库中: ALTER TABLE 表名 RENAME COLUMN 列名 TO 新列名。
2、在sqlserver数据库中:exec sp_rename '[表名][列名]‘,’[表名][新列名]'。
3、在mysql数据库中:ALTER TABLE 表名 CHANGE 列名 新列名 列类型。
扩展资料:
SQL中对表的其它 *** 作:
1、插入列:
ALTER TABLE [表名]TABLE_NAME ADD COLUMN_NAME DATATYPE。
2、为表中某列添加约束:大于等于100
alter table 表名 add check(列名>=100)。
3、更改表某列的数据类型为nchar(30):
alter table 表名 alter column 列名 nchar(30)。
4、删除表中某列的相关约束:
alter table 表名 drop constraint 约束名。
5、删除表中的某列:
alter table 表名 drop column 列名。
参考资料:百度百科-SQL语句大全
以上就是关于SQL语句修改数据库中某列的值 表名A 列名B 列值有 1、2、3、4、5。。。 批量修改列值等于5的倍数的语句全部的内容,包括:SQL语句修改数据库中某列的值 表名A 列名B 列值有 1、2、3、4、5。。。 批量修改列值等于5的倍数的语句、求sql2000 语句将列名为值。、sql 列名 拼接等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)