我们都知道,要从表中选择所有列,可以使用
SELECT * FROM tableA
是否有一种方法可以在不指定所有列的情况下从表中排除列?
SELECT * [except columnA] FROM tableA
我所知道的唯一方法是手动指定所有列并排除不需要的列。这真的很耗时,所以我正在寻找方法来节省时间和精力,以及未来的维护表应该有更多/更少的列。
我们都知道,要从表中选择所有列,可以使用
SELECT * FROM tableA
是否有一种方法可以在不指定所有列的情况下从表中排除列?
SELECT * [except columnA] FROM tableA
我所知道的唯一方法是手动指定所有列并排除不需要的列。这真的很耗时,所以我正在寻找方法来节省时间和精力,以及未来的维护表应该有更多/更少的列。
当前回答
如果你不想手动写每个列名,你可以使用Script Table As在SSMS中的表或视图中右键单击:
然后你会在新建查询编辑器窗口中得到整个选择查询,然后像这样删除不需要的列:
Done
其他回答
就像其他人说的那样,没有办法做到这一点,但如果你使用Sql Server,我使用的一个技巧是将输出更改为逗号分隔,那么就这样做
select top 1 * from table
并从输出窗口中剪切整个列列表。然后你可以选择你想要的列,而不必把它们全部输入。
实际上雪花刚刚发布了排除,所以现在你只需要
SELECT *排除[columnA,columnB,…][英语背诵文选
这不会节省从数据库加载的时间。但是,你总是可以在数组中取消你不想要的列。我在一个表中有几个列,但不想要一个特别的列。我太懒了,没有把它们都写在SELECT语句中。
$i=0;
$row_array = array();
while($row = mysqli_fetch_assoc($result)){
$row_array[$i]=$row;
unset($row_array[$i]['col_name']);
$i++;
}
不,这是不可能的。如果在您的情况下可行,也许您可以创建自定义视图
如果你的数据库支持动态sql的执行,你可以写一个SP,把你不想看到的列传递给它,让它动态创建查询并返回结果给你。我认为这至少在SQL Server中是可行的
如果您正在使用SQL Server Management Studio,那么请执行以下操作:
输入所需的表名并选择它 按Alt + F1 O /p表示表中的列。 选择所需的列 复制并粘贴这些在您的选择查询 触发查询。
享受。