sql语句查询除某一列以外的其他所有列?跪求

如题所述

如果你想直接在SQL查询语句中这么做,很遗憾地告诉你,不可以,你只能是列出你想要的所有列,不过有几个简单的方法可以帮你快速得到这个SQL,

通过Mangement Studio得到表的所有列,然后删除你不想要的列。


当然还有一些其他方法,你可以自己研究一下,主要是帮助你快速得到查询语句。


如果你是在存储过程中的话,你还可以通过拼SQL的方式得到你想要的效果,代码如下:

declare @cols varchar(max), @query varchar(max)
SELECT  @cols = STUFF
    (
        ( 
            SELECT DISTINCT '], [' + name
            FROM sys.columns
            where object_id = (
                select top 1 object_id from sys.objects
                where name = 'Customers'
            )
            and name not in ('Fax', 'Phone')
            FOR XML PATH('')
        ), 1, 2, ''
    ) + ']'
select @query = 'select ' + @cols + ' from Customers'  
print @query  //这也是一种得到你想要列的SQL的方法
exec (@query)

无论怎么样,都没有一种比较简洁或短的SQL写法,让你直接从查询结果中过滤掉某一或某些列,只能是列出你想要的列。

追问

非常感谢你的回答,虽然没采纳你的答案,依然谢谢你了!

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-07-05

1、首先我们准备一个数据表,如下图所示,接下来将会在这个表中添加列。

2、然后我们通过alter  table语句来给表添加一个列。

3、回到数据表一会我们看到列已经被添加进数据表了,如下图所示,但是默认值却没有。

4、接下来我们在添加列的时候同时添加上默认值,这个时候运用default关键字。

5、然后回到数据表,我们就看到默认值有内容了。

6、另外在数据表中经常使用的是uniqueidentifier类型,这种字段设置默认值需要按如下图所示的方式进行。

7、回到数据表中我们可以看到默认值已经添加上了。

本回答被网友采纳
第2个回答  推荐于2016-02-03
没有别的办法,只能一个一个字段罗列
不过你要是嫌一个一个敲上去麻烦,你可以把你的建表语句调出来
把不查的那个去掉,就行本回答被提问者采纳
相似回答