sql语句能否实现除了一个字段外全选?

buyong 2011-08-05 11:00:09
我有一个表TABLE中有几十个字段。(比如,A,B,C...Z)
我的需求是出了A字段不选以外,选出其他字段。
全选的sql语句是: select * from TABLE
我想要的是:select B,C,D,....,Z from TABLE
但是字段太多了,这样的语句太长,也不容易维护。有没有其他写法。
比如 select * except A from TABLE ?? 类似的?

我其实是需要指定A字段的值,不是用数据库里的值。
我原先写的是:select t.*, 'a' A from TABLE t
这样执行后我发现输出结果中有两个A列,一个是‘a’,一个是数据库表里的值。我不想输出数据库表里的值,怎么办?



oracle版没有满意答案,听说这边大牛多,希望能帮助我。
...全文
346 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
select × 不是好用法,一个一个来吧。
nzperfect 2011-08-05
  • 打赏
  • 举报
回复
微软还没增加lz你想的这个语法
快溜 2011-08-05
  • 打赏
  • 举报
回复
没有,只能一个个写出来,或者用动态sql exec执行
buyong 2011-08-05
  • 打赏
  • 举报
回复
必须存储过程么?sql语句行不行?我这个应用程序限制,如果是存储过程的话改动较大,不太方便
[Quote=引用 1 楼 acherat 的回复:]
SQL code

declare @sql varchar(4000)
select @sql = ','+name
from syscolumns
where id = object_id('tbname') and name <> 'A'

set @sql = 'select ' + stuff(@sql,1,1,'') + ' from tbname'
exec(@sq……
[/Quote]
AcHerat 元老 2011-08-05
  • 打赏
  • 举报
回复

declare @sql varchar(4000)
select @sql = ','+name
from syscolumns
where id = object_id('tbname') and name <> 'A'

set @sql = 'select ' + stuff(@sql,1,1,'') + ' from tbname'
exec(@sql)
木小舟 2011-08-05
  • 打赏
  • 举报
回复
貌似真没有,帮顶,期待内核高手
gogodiy 2011-08-05
  • 打赏
  • 举报
回复
你可以用select * from table先把全部字段都取出,然后显示的时候屏蔽掉你不需要的字段,用你想显示的内容替换就可以了。
chuanzhang5687 2011-08-05
  • 打赏
  • 举报
回复
麻烦还是必须的。不过你可以在查询结果的时候以文本形式显示结果,这样直接把列名全给取出来了。然后再删除你不要查询的行。这样貌似也不是很麻烦!
--小F-- 2011-08-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 buyong 的回复:]
必须存储过程么?sql语句行不行?我这个应用程序限制,如果是存储过程的话改动较大,不太方便

引用 1 楼 acherat 的回复:
SQL code

declare @sql varchar(4000)
select @sql = ','+name
from syscolumns
where id = object_id('tbname') and name <> 'A'

……
[/Quote]
那就没什么好办法了 只能结合系统表来做

要么用游标 更加不可取

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧