sql 查询排除一个字段的其他字段

假设user表有100个字段,其中的password(密码)字段是不能查询到的,那么如何查询其他的99个字段,(总不能99个字段都一一列举出来吧)?... 假设user表有100个字段,其中的password(密码)字段是不能查询到的,那么如何查询其他的99个字段,(总不能99个字段都一一列举出来吧)? 展开
 我来答
freechan10
2020-01-05 · TA获得超过2.9万个赞
知道小有建树答主
回答量:263
采纳率:68%
帮助的人:12.9万
展开全部

1、创建测试表,此处以创建6个字段为例,实际100个字段的话,操作类似,

create table test_sel_cols(id number, password varchar2(200), remark1 varchar2(100), remark2 varchar2(100), remark3 varchar2(100), remark4 varchar2(100));

2、通过系统视图,查看表结构;可以看到新建表的所有字段;

select * from user_tab_cols t where table_name = 'TEST_SEL_COLS';

3、编写sql,从视图中获取去掉password的所有字段;

   select 'select '||listagg(column_name, ',') within group(order by column_id) ||' from TEST_SEL_COLS' str  from user_tab_cols t where table_name = 'TEST_SEL_COLS' and column_name <> 'PASSWORD';

 

4、将上步查询结果复制出,即可生成所需sql如下:

select ID, REMARK1, REMARK2, REMARK3, REMARK4 from TEST_SEL_COLS

可以发现少了password字段;

百度网友8383eeb
2021-03-24
知道答主
回答量:1
采纳率:0%
帮助的人:511
展开全部

用视图代替要查询的表,视图中字段任选

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
末日高督
推荐于2017-12-16 · TA获得超过303个赞
知道小有建树答主
回答量:469
采纳率:0%
帮助的人:258万
展开全部
如果想一句话写出来的话,只有将99个字段一一列举出来.
但是可以使用动态语句来 偷下懒
DECLARE @cols AS VARCHAR(4000)
SELECT @cols = isnull(@cols,'') + NAME +',' FROM syscolumns s
WHERE 1=1 AND id = (SELECT id FROM sysobjects WHERE NAME ='yourtable') --and name <> '这里填写你徐压迫排除的字段'
SET @cols = LEFT(@cols,LEN(@cols)-1 )
EXEC ('select ' + @cols + ' from yourtable')
--备注:这个是tsql代码,只针对mssql
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-07
展开全部
你想要的这种写法是不存在的,查询语句的查询列表只有两种情况:
1.select * from [tablename] --查询所有列
2.select a, b, c from [tablename] --查询指定的列
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
danielread
2013-11-07 · 超过20用户采纳过TA的回答
知道答主
回答量:123
采纳率:100%
帮助的人:53.6万
展开全部
没能明白你的意思.............

不能直接查询表的信息吗?

select
* from user_col_comments
where table_name = upper( '某表名 ');
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式