回答
你不能使用标准的SQL。列名不被视为SQL中的数据。
如果您使用具有存储列名称,类型等的元数据表的SQL引擎,则可以在该表上选择。
'select * from information_schema.columns' :) – Blorgbeard
..这是标准的sql,就是我的意思。 – Blorgbeard
@Blorgbeard,你是正确的information_schema是标准的SQL。但是,并不是所有引擎都实现它,并不是所有引擎都使用这个名称。真的取决于发动机。 –
SELECT * FROM SysColumns WHERE Name like 'a%'
会得到你列的列表,你将要过滤更将其限制到目标表
从那里,你可以建造一些临时SQL
thanks.It将是很好,如果一些分贝可以对称的方式处理列作为行,就像在Excel中的一个speead表... –
这将让你列表
select * from information_schema.columns
where table_name='table1' and column_name like 'a%'
如果你想用它来构造查询,你可以做这样的事情:
declare @sql nvarchar(max)
set @sql = 'select '
select @sql = @sql + '[' + column_name +'],'
from information_schema.columns
where table_name='table1' and column_name like 'a%'
set @sql = left(@sql,len(@sql)-1) -- remove trailing comma
set @sql = @sql + ' from table1'
exec sp_executesql @sql
注意,上面的SQL编写服务器。
下面是显示你想要的信息的好办法:
SELECT B.table_catalog as 'Database_Name',
B.table_name as 'Table_Name',
stuff((select ', ' + A.column_name
from INFORMATION_SCHEMA.COLUMNS A
where A.Table_name = B.Table_Name
FOR XML PATH(''),TYPE).value('(./text())[1]','NVARCHAR(MAX)')
, 1, 2, '') as 'Columns'
FROM INFORMATION_SCHEMA.COLUMNS B
WHERE B.TABLE_NAME like '%%'
AND B.COLUMN_NAME like '%%'
GROUP BY B.Table_Catalog, B.Table_Name
Order by 1 asc
添加或者之间的任何东西“%%”在主选择来缩小你想要的表和/或列名。
这将显示你的表名和列名
select table_name,column_name from information_schema.columns
where column_name like '%breakfast%'
Blorgbeard不得不为SQL Server一个伟大的答案。如果你有像我这样的MySQL服务器,那么下面的代码将允许你从名字就像某个关键短语的列中选择信息。你只需要替换表名,数据库名和关键字。
SET @columnnames = (SELECT concat("`",GROUP_CONCAT(`COLUMN_NAME` SEPARATOR "`, `"),"`")
FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_SCHEMA`='your_database'
AND `TABLE_NAME`='your_table'
AND COLUMN_NAME LIKE "%keyword%");
SET @burrito = CONCAT("SELECT ",@columnnames," FROM your_table");
PREPARE result FROM @burrito;
EXECUTE result;
- 1. SQL选择名称的ID
- 2. 选择* vs选择所有列名称
- 3. C#DataTable选择列名称,如
- 4. 如何选择在SQL中使用命令名称的列?
- 5. 如何在sql server中选择没有名称的列?
- 6. 在列名称中选择带有句点的列SQL Server
- 7. 如何选择concantenated名称
- 8. jQuery选择名称
- 9. 选择varchar值作为动态sql查询中的列名称
- 10. 基于名称类型的sql选择列
- 11. 通过名称取消选择列,R
- 12. Filemaker XSL按名称选择列
- 13. 按重要性选择列名称
- 14. 选择列名称为不工作Rails3
- 15. R个行名称选择使用列
- 16. SQL选择列
- 17. 选择列SQL
- 18. SQL异常而用别名选择列
- 19. Spark SQL选择别名UNION上的列
- 20. SQL选择列名作为值
- 21. SQL服务器选择*列名订购
- 22. MySQL的选择名称
- 23. simple_form选择:按名称
- 24. jQuery选择:按名称
- 25. 选择一组名称
- 26. SQL-如何选择注册所有模块的学生名称?
- 27. 如何在SQL查询中选择表的名称?
- 28. 如何选择新的XML语言的名称空间名称?
- 29. 如何按名称选择TreeNode?
- 30. 如何选择mongodb服务器名称?
您正试图查询列名称的列表,并查询这些列? –
虽然有可能我会强烈建议你不要这样做。你的问题意味着两件事情之一1)你不想明确地声明所有的列(你应该)或2)你不知道你正在查询的表的模式。如果你不知道表的模式,你将不会有返回的数据集的一致维数...。 – Matthew
@Matthew,谢谢你的评论。我会问一个相关的新手问题。 –