实现 select * [except column] from tableName
来源:互联网 发布:电气编程是什么 编辑:程序博客网 时间:2024/05/29 04:33
问题描述:有特定环境下,我们也许只知道某一列(或几列),而想获得除此列(几列)外的所有列的数据。
如已知如下circle表
可能只知道有一列(flag),欲获得除此列之外的数据。
预期结果如下:
解决方案:
将问题进行分解:
1.获取除此列外所有列的名称;
2.利用动态SQL,得到预期结果。
获取所有列名的方法:
方法一:
select name from syscolumnswhere id = object_id('circle')
方法二:
select column_name from information_schema.columnswhere table_name = 'circle'对应上述二种获取列名的方法,便存在二种不同的解决方案。
方案一:
declare @columnNames varchar(max)set @columnNames = ''select @columnNames = @columnNames + name +','from syscolumnswhere id = object_id('circle') and name <>'flag'--erase the last commaset @columnNames = substring(@columnNames,1,len(@columnNames)-1);exec('select ' + @columnNames +' from circle');方案二:
declare @columnNames varchar(max)set @columnNames = ''select @columnNames = @columnNames+column_name +','from information_schema.columnswhere table_name = 'circle' and column_name <>'flag'--erase the last commaset @columnNames = substring(@columnNames,1,len(@columnNames)-1);exec('select ' + @columnNames +' from circle');
结论:
这种方式仅适用于特定条件下,如已知部分列的列名获取除已知部分列外的数据。因为这种方式本身效率不高,所以在已知所需列名时,不推荐使用这种方式获取数据,最好乖乖列出所有需要列的列名。
- 实现 select * [except column] from tableName
- SqlServer支持 select * from (select *from tablename)
- select top 10 from tablename
- select top 1 * from tablename
- hibernate: “select from TABLENAME”出错
- Lambda Expression of Select * from TableName
- select * from (select * from tablename) 不可以 问题解决
- Hive SQL 语义分析:select count(*) from tableName
- select * from tablename where 1=0的意义
- stuff(select ',' + fieldname from tablename for xml path('')),1,1,'')
- table does not exists,select 1 from tablename limit 1
- Select Column Name from a Table
- sql函数使用实例 select fd1,fd1,dbo.isNullOrEmpty(fdClass,'无类别') from [tableName]
- unexpected token: * near line 1, column 8 [select * from tb_cat]
- select a specific column from a ref cursor
- delete from tablename与drop table tablename区别
- hive-bug:create db.tablename as select .....
- mybatis插入oracle数据库,如果用foreash就用select xx from dual;否则用insert into tablename(,,)values()时不要用foreach
- vim配置文件
- android 自定义动画2
- 平衡二叉树调整
- Python Web 服务开发者 第 6 部分: Python SOAP 库,第 2 部分
- ADSP各种文件类型(ldr/ldf/dxe)
- 实现 select * [except column] from tableName
- gh0st完全分离dat文件与dll文件
- Android相关资源
- 每天一算法(三色河内塔)
- getdtablesize()函数的作用
- VB.NET入门(二)
- 虚拟机设置
- C++学习资源
- 求大牛支援