如果乙個表列數不固定,要求:除了第2列的其餘列都查詢出來,這種情況就要用到系統自帶的一些表,來幫助我們:
sysobjects——系統物件表,儲存當前資料庫的物件,如試圖,表,儲存過程,函式等等...
重要字段:
name(物件名);
xtype(物件型別,試圖--v;使用者表--u,儲存過程--p);
id(物件id);
select * from sysobjects
結果如下:
syscolumns——資料庫字段表,儲存表,試圖,儲存過程的引數;表,試圖的每列在表中佔一行,儲存過程每個引數在表中佔一行.
重要字段:
name(列名或者儲存過程引數的名稱);
id(所屬物件的id);
colorder(列號,1,2,3...);
select * from syscolumns
結果如下:
現在根據sysobjects和syscolumns聯合查詢獲取使用者表weibo所有列資訊:
select a.name 物件名,a.xtype 物件型別,a.id 物件id,b.name 列名,b.id 所屬物件的id,b.colorder 列號
from sysobjects a,syscolumns b where a.id=b.id and a.xtype='u' and a.name='weibo'
查詢結果:
可以根據列號<>2,組合查詢字串達到我們想要的結果,最終的sql指令碼:
declare @list varchar(1000),@sql nvarchar(1000)
set @list=''
select @list=@list+','+b.name from sysobjects a,syscolumns b where a.id=b.id and a.xtype='u' and a.name='weibo' and (b.colorder<>2)
set @sql='select '+right(@list,len(@list)-1)+' from weibo'
exec (@sql)
關於鎖表查詢的部分SQL
查詢表空間名稱和大小 select upper f.tablespace name 表空間名 d.tot grootte mb 表空間大小 m d.tot grootte mb f.total bytes 已使用空間 m to char round d.tot grootte mb f.total ...
ORACLE關於鎖表查詢的部分SQL
查詢表空間名稱和大小 select upper f.tablespace name 表空間名 d.tot grootte mb 表空間大小 m d.tot grootte mb f.total bytes 已使用空間 m to char round d.tot grootte mb f.total ...
ORACLE關於鎖表查詢的部分SQL
查詢表空間名稱和大小 select upper f.tablespace name 表空間名 d.tot grootte mb 表空間大小 m d.tot grootte mb f.total bytes 已使用空間 m to char round d.tot grootte mb f.total ...