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

重命名SQL中的SELECT *中的单列,选择除列之外的所有列

邹缪文
2023-03-14
问题内容

这是我正在尝试做的事情-我有一个包含很多列的表,并且想要创建一个视图,其中包含根据其他列中值的特定组合重新分配的一个列

Name, Age, Band, Alive ,,, <too many other fields)

我想要一个将重新分配其中一个字段的查询,例如

Select *, Age = 
CASE When "Name" = 'BRYAN ADAMS' AND "Alive" = 1 THEN 18
     ELSE "Age"
END
FROM Table

但是,我现在拥有的架构是 Name, Age, Band, Alive,,,,<too many>,, Age

我可以在选择的陈述中使用“ AS” Name, Age, Band, Alive,,,,<too many>,, Age_Computed.

但是,我想Name, Age, Band, Alive.,,,,找到年龄实际上是计算年龄的原始方案 。

我可以选择重命名SELECT * and A_1 as A, B_1 as b吗?(然后A_1完全消失)或选择性的*,我可以选择除某些列之外的所有列?(这也将解决上一个语句中提出的问题)

我知道枚举所有列并创建适当查询的方法,但是我仍然希望有一种“更简单”的方法可以做到这一点。


问题答案:

抱歉,不,没有一种方法可以根据需要使用SELECT *结构替换现有的列名。

最好显式定义列,尤其是对于视图,最好不要使用SELECT *。创建视图时,只需将表的DDL用作模型。这样,您可以更改所需的任何列定义(如您的问题),并消除不适合该视图的列。我们使用这种技术来屏蔽或消除包含敏感数据(例如社会保险号和密码)的列。marc_s在注释中提供的链接很不错。



 类似资料:
  • 问题内容: 我需要重命名数据库中所有表中的列。因此必须在所有表中将“ OldColumn”列重命名为“ NewColumn” 我可以使用此查询获取具有此列的表的列表: 但是,如何在所有表中重命名它却尽可能简单,而不必编写游标呢? 问题答案: 当然,您不需要为此使用光标。您可以使用sys.columns和sys.objects生成动态sql。然后简单地执行它。一旦您对动态sql感到满意,就可以随意取

  • 问题内容: 是否可以选择除一列之外的所有列? 这是所有列名称:ID,名称,地址,年龄 我不想使用此select语句,因为我的表的列数彼此不同。 问题答案: declare @cols varchar(max), @sql varchar(max) SELECT @cols = STUFF ( ( SELECT DISTINCT ‘], [‘ + name FROM sys.columns wher

  • 问题内容: 我正在尝试使用select语句从某个MySQL表中获取除一个以外的所有列。有没有简单的方法可以做到这一点? 编辑:此表中有53列(不是我的设计) 问题答案: 实际上有一种方法,您当然需要具有执行此操作的权限… 更换

  • 问题内容: 我想重命名表达式结果中的列。当然,以下操作无效: 由于我是SQL的新手,我想我只是缺少一个会导致答案的概念,工具或关键字。向正确方向的提示将不胜感激。谢谢! 更新 我正在寻找一种实现此目的的通用方法,并且特定于MySQL的技术绝对可以。 简而言之,我正在编写一个工具,用于将MySQL查询的结果“导出”到Google Spreadsheets(通过Google Data API)。有些查

  • 问题内容: 如何选择表中除一列以外的所有列? 我有将近259列,我不能在声明中提及258列。 还有其他方法吗? 问题答案: 您可以使用这种方法从除以下以外的所有列中获取数据:- 将所有数据插入临时表 然后从临时表中删除不需要的列 从临时表中获取数据(这将不包含已删除列的数据) 删除临时表 像这样的东西:

  • 问题内容: 我有一个数据框看起来像这样: 我如何才能获得除以外的所有列? 问题答案: 当列不是MultiIndex时,仅是列名称的数组,因此您可以执行以下操作: