假设现在有一张表,一共有1000个字段,我现在想用select * 查询前面400个字段的内容,然后再用select * 查询后面600个字段的内容,不能一一的把列名写出来,因为太多了。请问能通过什么方法能够实现?
------解决思路----------------------
--只能用动态查询
DECLARE @TABLENAME NVARCHAR(128)
SET @TABLENAME='A'
DECLARE @SQL NVARCHAR(MAX)
SET @SQL=''
SELECT @SQL=@SQL+','+NAME FROM SYS.SYSCOLUMNS
WHERE id=OBJECT_ID(@TABLENAME) AND colid<=400--可以改为>=400 查后600列
SET @SQL='SELECT '+STUFF(@SQL,1,1,'')+' FROM '+@TABLENAME
EXEC(@SQL)
------解决思路----------------------
生成查询栏位名,复制在select 位置
--前400栏位
SELECT ','+QUOTENAME(name) FROM syscolumns WHERE ID=OBJECT_NAME('表名') AND colid<=400
--后600栏位
SELECT ','+QUOTENAME(name) FROM syscolumns WHERE ID=OBJECT_NAME('表名') AND colid>400