gpt4 book ai didi

sql - 选择 * 除外

转载 作者:行者123 更新时间:2023-12-03 01:21:48 25 4
gpt4 key购买 nike

是否有任何 RDBMS 可以实现诸如 SELECT * EXCEPT 之类的功能?我想要获取除特定 TEXT/BLOB 字段之外的所有字段,并且我只想选择其他所有字段。

几乎每天我都会向我的同事提示应该有人实现这个......它不存在真是太烦人了。

编辑:我理解大家对SELECT *的担忧。我知道与 SELECT * 相关的风险。但是,至少在我的情况下,这不会用于任何生产级别代码,甚至开发级别代码;当我需要轻松查看所有值时,严格用于调试。

正如我在一些评论中所说,我工作的地方严格来说是一个命令行商店,所有事情都通过 ssh 完成。这使得使用任何 GUI 工具变得困难(不允许外部连接到数据库)等。

感谢您的建议。

最佳答案

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

使用动态 SQL 执行此操作...这会执行除“描述”列之外的所有列。您可以轻松地将其转换为函数或存储过程。

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

关于sql - 选择 * 除外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/413819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com