對同一資料庫下的多個資料表的同一字段進行處理舉例
例如多個資料表中都含有csign欄位,需要替換空格為空,『』
1 查詢含有該字段的資料表名稱
select sc.name,so.name from syscolumns sc left join
sysobjects so on sc.id=so.id
where sc.name='csign' and so.type='u'
或select so.name from sysobjects so where so.id in (select id from syscolumns
where name='csign' )
and so.type='u'
2 實現替換『 』替換為『』
宣告列名、表名和定義游標
declare @colname as nvarchar(100),@tablename as nvarchar(100),@sql as nvarchar(1000)
declare @cur as cursor
set @colname='csign'
為游標賦值
set @cur=cursor for (select so.name from syscolumns sc left join
sysobjects so on sc.id=so.id
where sc.name='csign' and so.type='u')
--預設為全域性游標,
宣告區域性游標也可以:set @cur=cursor global/local for這裡沒有必要
開啟游標
open @cur
獲取值到臨時變數中
fetch @cur into @tablename
迴圈替換
while @@fetch_status=0 --獲取成功
begin
set @sql='update ' + @tablename +' set ' +@colname +' =replace('+
@colname +','' '','''')'
print @sql
exec(@sql)
fetch next from @cur into @tablename
end關閉游標
close @cur
釋放游標
deallocate @cur
oracle 批量更改所有表的同一字段型別
經常需要oracle中的所有的字段的型別更改為另外乙個型別,可以考慮利用如下 此處的demo為將nvarchar2轉為varchar2型別並且字段長度保持不變。declare cursor c tab is select from user tab columns t where t.data ty...
mysql 根據不同條件查詢表中同一字段
需求 需要在一張表中,查詢某個店鋪05 17和05 10兩天的同乙個gmv欄位資料 遇到問題 在測試過程中發現,如果兩天中任意一天沒有資料,則該店鋪整體資料均不顯示 解決 select a.seller nick,ifnull a.gmv,0 ifnull b.gmv,0 as last gmv f...
多表相加同一欄位union聯合的使用
業務需求 最近的問題就是,有很多部門,部門又擁有商品,商品有不同的品種,我們需要計算出不同部門裡有多少不同商品,但是對乙個部門來說 既有屬於部門的商品,也有屬於個人的商品,這也就是兩個表,首先,我們知道,我們需要查的就是部門中同乙個商品,個人持有量和部門持有量。select ri equipment...