代码之家  ›  专栏  ›  技术社区  ›  Sundar R

从SQL中的表中选择(*some_columns)

  •  3
  • Sundar R  · 技术社区  · 15 年前

    我有一个表,有许多列,其中我想在我的“select”查询中单独省略一些列。类似的东西 select (* - columns_to_be_omitted) from myTable . 除了列出查询中的所有其他列之外,还有其他方法可以做到这一点吗?

    这是一个一次性的手动查询,所以我不太关心性能。这里更需要的是易用性。

    5 回复  |  直到 15 年前
        1
  •  2
  •   marc_s    15 年前

    你不能这样做-你能做的最好的就是使用像 SQL Prompt 如果您使用的是SQL Server Management Studio。

    SQL提示将允许您执行 SELECT * FROM MyTable 如果您将光标放在“*”后面并按Tab键,SQL Prompt将为您的表枚举所有列,并为您提供表中所有列的列表,然后可以从中删除您不感兴趣的列。或者,您可以打开一个弹出对话框,允许您从该表中选择任意数量的列,然后将这些列插入到select语句中。

    太糟糕了,这不是SSM的一部分,开箱即用:-(

    马克

        2
  •  4
  •   cletus    15 年前

    在直接SQL中不能这样做。最好的方法是编写一个存储过程(匿名或其他),该存储过程构造一个动态SQL语句并执行它。

    您可以包含全部或部分内容,但不能包含全部或部分内容(除非存在不同数据库的奇怪供应商扩展)。MySQL中没有这样的东西。

        3
  •  1
  •   Spence    15 年前

    到今天为止,我还不明白M$是如何运送一个没有智能感知的IDE和一个管理工作室的…我现在已经纠正,2008年有这个,2005年没有。

    如果您有SQL Management Studio,那么可以使用脚本select to new query窗口,该窗口将为您提供一个模板select语句,您可以从中删除该语句。只需右击桌子。

    祝你好运:

        4
  •  0
  •   valli    15 年前

    没有直接的方法。您可以在select查询中提到所需的invidual列,否则,您可以通过从表中提供选择列并使用该临时表来创建temprory表。

        5
  •  0
  •   Thorsten    15 年前

    可以使用对数据字典的查询动态构造列列表。然后,您可以在WHERE子句中添加不需要的列列表(例如列名称不在()中)。(不确定如何使用cletus建议的存储过程方法来实现这一点。)