当前位置: 首页 > 面试题库 >

SELECT * EXCEPT

谭奕
2023-03-14
问题内容

有没有实现类似RDBMS的东西SELECT * EXCEPT?我需要的是获取除特定TEXT / BLOB字段以外的所有字段,我只想选择其他所有内容。

几乎每天,我都向同事抱怨有人应该执行此操作……令人讨厌的是它不存在。

编辑: 我了解每个人的关注SELECT *。我知道与此相关的风险SELECT*。但是,至少在我看来,这不会用于任何生产级别代码,甚至开发级别代码;严格用于调试,当我需要轻松查看所有值时。

正如我在一些评论中所述,我的工作严格是命令行商店,通过ssh进行所有操作。这使得很难使用任何gui工具(不允许与数据库的外部连接)等等。

谢谢你的建议。


问题答案:

正如其他人所说,在查询中执行此操作不是一个好主意,因为将来有人更改表结构时,它很容易出现问题。但是,有一种方法可以执行此操作…而且我不敢相信我实际上在建议这样做,而是本着回答ACTUAL问题的精神…

使用动态SQL来执行此操作…这将完成除“ description”列之外的所有列。您可以轻松地将其转换为函数或存储的proc。

declare @sql varchar(8000),
    @table_id int,
    @col_id int

set @sql = 'select '

select @table_id = id from sysobjects where name = 'MY_Table'

select @col_id = min(colid) from syscolumns where id = @table_id and name <> 'description'
while (@col_id is not null) begin
    select @sql = @sql + name from syscolumns where id = @table_id and colid = @col_id

    select @col_id = min(colid) from syscolumns where id = @table_id and colid > @col_id and name <> 'description'
    if (@col_id is not null) set @sql = @sql + ','
    print @sql
end

set @sql = @sql + ' from MY_table'

exec @sql


 类似资料:
  • 我的DB MySQL上有这样的情况: 表_A Cod |值1 |值2 |值3 TABLE_B 鳕鱼|价值4|价值5 表C Cod |值6 我使用这个查询: 一切都很好,但是现在我必须从TABLE_A中选择元素(与TABLE_B和TABLE_C连接)并与TABLE_A上的一个元素连接。 例如,当时,当时,也选择和时,则相反。 编辑:(从OP的评论中添加): 我的查询结果 例如:(< code > 1

  • Select editor should be considered an example how to write editors rather than used as a fully featured editor. It is a much simpler form of the Dropdown editor. It is suggested to use the latter in y

  • Select ion-select和html中的select有点相似。 单选 <ion-item> <ion-label>Gender</ion-label> <ion-select [(ngModel)]="gender"> <ion-option value="f" checked="true">Female</ion-option> <ion-option value

  • 1.5.0 新增 Select 组件,用于单项选择。 注: 由于此组件依赖 Picker 组件,而 Picker 组件是基于 create-api 实现,所以在使用之前,请确保自己了解过 create-api。 示例 基本用法 对于 Select 选择组件,你需要传入 options 定义各个选项,选择的结果则绑定在 v-model 上。 <cube-select v-model="value

  • 描述 (Description) 此函数将输出的默认文件句柄设置为FILEHANDLE,如果未指定文件句柄,则设置由打印和写入等功能使用的文件句柄。 如果未指定FILEHANDLE,则返回当前默认文件句柄的名称。 select (RBITS, WBITS, EBITS, TIMEOUT ) )使用指定的位调用系统函数select()。 select函数设置用于处理非阻塞I/O请求的控件。 返回标量

  • SELECT index 切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值。 默认使用 0 号数据库。 可用版本: >= 1.0.0 时间复杂度: O(1) 返回值: OK redis> SET db_number 0 # 默认使用 0 号数据库 OK redis> SELECT 1 # 使用 1 号数据库 OK