s***c 发帖数: 1664 | 1 有A-Z 26个column, 其中A-K都是integer 类型,我要把A-K里所有大等于1的数都改成
1,怎么写比较简单?
多谢。。 |
c*****d 发帖数: 6045 | 2 如果这个sql就用一次,直接写就好了
update table1 set column_a=1, column_b=1, .... where column_a>1 or column_b
> 1 ....
如果经常用,并且column name不规则
在oracle里面从数据字典user_tab_columns读取字段位置和名字
然后用sql语句拼起来 |
s***c 发帖数: 1664 | 3 谢回复
应该是
update table1
set A=1
where A>=1
update table1
set B=1
where B>=1
...
写十几遍,不知道有没有快一点的办法 |
n***l 发帖数: 143 | 4 This is doable with dynamic sql.
You need first query the information_schema to get table names and column
names to variables, then use something like:
update @table
set @column = 1 where @column >=1 |
w*r 发帖数: 2421 | 5 UPDATE A
SET A = CASE A > 1 THEN 1 ELSE A END,
B = CASE B> 1 THEN 1 ELSE B END
.... |
a9 发帖数: 21638 | 6 ctrl+f
【在 s***c 的大作中提到】 : 谢回复 : 应该是 : update table1 : set A=1 : where A>=1 : update table1 : set B=1 : where B>=1 : ... : 写十几遍,不知道有没有快一点的办法
|