回答
你不能使用標準的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按列名稱列表選擇/組
- 2. SQL選擇名稱的ID
- 3. 選擇* vs選擇所有列名稱
- 4. mysql - 如何根據名稱選擇列
- 5. C#DataTable選擇列名稱,如
- 6. 如何在sql server中選擇沒有名稱的列?
- 7. 如何選擇在SQL中使用命令名稱的列?
- 8. 如何選擇列名稱並獲取SQL Server的數據?
- 9. 使用列計數和名稱選擇sql表名
- 10. 選擇數據庫名稱,表名稱和列名稱。
- 11. 在列名稱中選擇帶有句點的列SQL Server
- 12. 無效的對象名稱SQL選擇
- 13. SQL - 選擇與ID關聯的名稱
- 14. 選擇TOP 2與DISTINCT名稱SQL SERVER
- 15. 在SQL中選擇一個名稱
- 16. 如何選擇concantenated名稱
- 17. jQuery選擇名稱
- 18. 基於名稱類型的sql選擇列
- 19. 根據表名稱w/SQL爲時間序列表選擇?
- 20. 當值不爲空時,動態選擇SQL Server列名稱
- 21. 選擇varchar值作爲動態sql查詢中的列名稱
- 22. MySQL選擇:用名稱替換parent_id列
- 23. 在一列中選擇兩個名稱
- 24. 按重要性選擇列名稱
- 25. R個行名稱選擇使用列
- 26. 在mysql/php中選擇列名稱
- 27. 選擇以x開頭的列名稱
- 28. 通過名稱取消選擇列,R
- 29. Filemaker XSL按名稱選擇列
- 30. 選擇列名稱爲不工作Rails3
您正試圖查詢列名稱的列表,並查詢這些列? –
雖然有可能我會強烈建議你不要這樣做。你的問題意味着兩件事情之一1)你不想明確地聲明所有的列(你應該)或2)你不知道你正在查詢的表的模式。如果你不知道表的模式,你將不會有返回的數據集的一致維數...。 – Matthew
@Matthew,謝謝你的評論。我會問一個相關的新手問題。 –