sql查询的问题:一张表有300列,我只查询其中的299列,怎么查?(不要说用select(299个列名))
答案:6 悬赏:0 手机版
解决时间 2021-03-15 18:07
- 提问者网友:姑娘长的好罪过
- 2021-03-15 03:03
sql查询的问题:一张表有300列,我只查询其中的299列,怎么查?(不要说用select(299个列名))
最佳答案
- 五星知识达人网友:十年萤火照君眠
- 2021-03-15 04:36
用语句生成语句吧,sql server2005环境下、
declare @str varchar(8000)
set @str=''
select @str=@str+name+',' from sys.columns where object_id=object_id('表名') and name<>'列名'
select @str='select '+left(@str,len(@str)-1)+' from 表名'
exec(@str)
sql server 2000环境下,
declare @str varchar(8000)
set @str=''
select @str=@str+name+',' from syscolumns where id=object_id('表名') and name<>'列名'
select @str='select '+left(@str,len(@str)-1)+' from 表名'
exec(@str)
declare @str varchar(8000)
set @str=''
select @str=@str+name+',' from sys.columns where object_id=object_id('表名') and name<>'列名'
select @str='select '+left(@str,len(@str)-1)+' from 表名'
exec(@str)
sql server 2000环境下,
declare @str varchar(8000)
set @str=''
select @str=@str+name+',' from syscolumns where id=object_id('表名') and name<>'列名'
select @str='select '+left(@str,len(@str)-1)+' from 表名'
exec(@str)
全部回答
- 1楼网友:醉吻情书
- 2021-03-15 10:28
select * from 表。
全查出来,用到谁就用谁,用不到没关系,效率差别不大,用计算机就要遵循计算机的思想,以前的一些思路要随着改变。
- 2楼网友:你可爱的野爹
- 2021-03-15 09:12
如果是指定列查询,那么肯定就知道列数。
关键是遇到*这样的情况,那么就可以根据数据字典,来查询a, b表的字段个数。再加上最后一个c.id的1,就是总列数了。
sqlserver,可以使用
select count(*) from syscolumns a inner join sysobjects b on a.id = b.id and b.xtype = 'u' and b.name in ('a','b')
这个结果加上1,就是你这个查询的总个数了。
所以,遇到星号查询全表字段的,可以从数据字典表中查询所涉及的表一共有多少个字段数。
oracle 可以使用user_tab_cols,或者是dba_tab_cols
select count(*) from user_tab_cols where table_name in ('a','b')---大写
- 3楼网友:三千妖杀
- 2021-03-15 08:23
真的是很无聊的问题,都想那么复杂干吗?
我给你一个思路,从系统表(sysobjects,syscolumns)中抽出此表的所有列名,
把他复制到EXCEL,在EXCEL中通过公式在每个字段后加个逗号,然后去掉你不要的那行,然后整体复制进SQL语句中的SELECt后面中即可。
如果你要问怎么查某表中所有字段怎么写,各个数据库语句不同,以下是SQL SERVER 2000的:SELECT dbo.sysobjects.name as Table_name, dbo.syscolumns.name AS Column_name
FROM dbo.syscolumns INNER JOIN
dbo.sysobjects ON dbo.syscolumns.id = dbo.sysobjects.id
WHERe dbo.sysobjects.name='要查的表'and (dbo.sysobjects.xtype = 'u')
AND (NOT (dbo.sysobjects.name LIKE 'dtproperties'))
ORACLE版本如下:
SELECt column_name from user_tab_columns where table_name='表名')
- 4楼网友:像个废品
- 2021-03-15 06:59
每个元组都有一个key,这个key不同,假如你有一个student表,里面储存的是学生信息,其中包括sno(学号),sname(姓名)等等,如果你想查其中299个,可以用SQL 语句:select * from student where sno not like 'xxx'(其中XXX代表你不想查的那个元组的key,即学号),这只是一个思路,楼主没给具体的情况,没办法具体情况具体对待
- 5楼网友:时间的尘埃
- 2021-03-15 05:38
又不要你自己写
直接把表下面的列选中一拖到查询分析器里面
全有了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯