我已經與數百列這個巨大的視圖中選擇在SELECT子句n列,我需要選擇第114列是這樣的:有沒有辦法從表/視圖
SELECT "144" FROM MyView;
PS:很明顯,我不知道專欄的名字。我只是將結果行復制到Excel文件中,搜索EJ列中的特定值,因此我想選擇顯示僅視圖中第n列的所有行,以進行進一步的調試。
乾杯!
我已經與數百列這個巨大的視圖中選擇在SELECT子句n列,我需要選擇第114列是這樣的:有沒有辦法從表/視圖
SELECT "144" FROM MyView;
PS:很明顯,我不知道專欄的名字。我只是將結果行復制到Excel文件中,搜索EJ列中的特定值,因此我想選擇顯示僅視圖中第n列的所有行,以進行進一步的調試。
乾杯!
如果使用的是MS SQL Server,您可以
sp_help ViewName
,然後滾動到列名第144列結果集,看看該列的名稱。
此外,您可以在SQL Server Management Studio的結果窗格中選擇「與標題一起復制」,並將結果集粘貼到Excel中,標題(列名)保持不變。
謝謝,這符合我的目的,我會盡快接受答案(5分鐘內)。 – 2010-05-04 20:31:01
不,您無法使用標準SQL或Oracle按索引進行選擇。
但是,其他數據庫供應商可能有自己的專有命令。
您可以在通用存儲過程中使用以下內容,其中傳遞列名稱,表名稱和n的值。這將在MSSQL 2000 - 2008上工作。
CREATE PROC usp_select_Nth
(
@table_name sysname,
@column_name sysname,
@nth int
)
AS
BEGIN
SET @exec = 'SELECT MAX(' + @column_name + ') from ' + @table_name + ' WHERE ' + @column_name + ' NOT IN (SELECT TOP ' + LTRIM(STR(@nth - 1)) + ' ' + @column_name + ' FROM ' + @table_name + ' ORDER BY ' + @column_name + ' DESC)'
EXEC (@exec)
END
謝謝Dolph。我總是忘記發佈的代碼段功能。 – 2010-05-04 20:35:44
重點是我不知道專欄名稱。無論如何謝謝 – 2010-05-04 20:38:58
我錯過了這一點。 :( – 2010-05-04 20:41:14
我建議根據他們的Excel列名稱給出所有列名稱。應該有一個excel解決方案,使第一行等於列名(即AA,BB等)。然後進行導入,然後根據應該可計算的列名進行選擇。
我遇到了同樣的問題,並通過此代碼解決了問題。 在存儲過程中使用此
DECLARE @TableName as nVarchar(100);
DECLARE @NthColumn as Int
--we are fetching 1st column here.
SELECT
@TableName =N'YOURTABLE',
@NthColumn=1 --Change if necessary
DECLARE @ColumnName as varchar(100);
SELECT @ColumnName = Col_name(object_id(@TableName),@NthColumn);
EXEC ('SELECT ' + @ColumnName + ' FROM ' + @TableName);
這是什麼類型的數據庫? MSSQL? MySQL的?訪問? ... – FrustratedWithFormsDesigner 2010-05-04 20:24:42
SQL Server 2005 – 2010-05-04 20:26:09