복붙노트

[SQL] 테이블 / 뷰에서 SELECT 절에서 n 번째 열을 선택하는 방법이 있나요

SQL

테이블 / 뷰에서 SELECT 절에서 n 번째 열을 선택하는 방법이 있나요

나는 수백 열이 GIGANTIC보기를했는데 내가 좋아하는 114 번째 열 뭔가를 선택해야합니다 :

SELECT "144" FROM MyView;

추신 : 분명히, 나는 컬럼의 이름을 모른다. 난 그냥, Excel 파일로 결과 행을 복사 내가 더 디버깅을 할 수있는 내보기 만 n 번째 열을 보여주는 모든 행을 선택 할 수 있도록 EJ 컬럼에 특정 값을 검색.

건배!

해결법

  1. ==============================

    1.당신이 MS SQL Server를 사용하는 경우에 당신은 할 수 있습니다

    당신이 MS SQL Server를 사용하는 경우에 당신은 할 수 있습니다

    sp_help ViewName
    

    그리고 그 컬럼의 이름이 무엇인지 확인하기 위해 COLUMN_NAME 결과 세트의 144 칼럼으로 스크롤합니다.

    또한 당신은 SQL Server 관리 Studio에서 결과 창에 "헤더로 복사"를 선택하고 그대로 헤더 (열 이름)와 Excel로 결과 집합을 붙여 넣을 수 있습니다.

  2. ==============================

    2.나는 그들의 엑셀 열 이름에 따라 모든 열 이름을주는 게 좋을 것. 첫 번째 행은 열 이름 (예 AA, BB, 등)을 동일하게 엑셀 용액이 있어야한다. 그런 다음 가져 오기를 수행 한 후 계산할 수 있어야 열 이름에 따라 선택합니다.

    나는 그들의 엑셀 열 이름에 따라 모든 열 이름을주는 게 좋을 것. 첫 번째 행은 열 이름 (예 AA, BB, 등)을 동일하게 엑셀 용액이 있어야한다. 그런 다음 가져 오기를 수행 한 후 계산할 수 있어야 열 이름에 따라 선택합니다.

  3. ==============================

    3.당신은 당신이 열 이름, 테이블 이름, n의 값을 전달하는 일반적인 저장 프로 시저에 다음을 사용할 수 있습니다. 2008 -이 MSSQL 2000에서 작동합니다.

    당신은 당신이 열 이름, 테이블 이름, n의 값을 전달하는 일반적인 저장 프로 시저에 다음을 사용할 수 있습니다. 2008 -이 MSSQL 2000에서 작동합니다.

    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
    
  4. ==============================

    4.저도 같은 문제가이 코드에 의해 그것을 해결했다. 저장 프로 시저에서 이것을 사용

    저도 같은 문제가이 코드에 의해 그것을 해결했다. 저장 프로 시저에서 이것을 사용

    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);
    
  5. ==============================

    5.아니, 당신도 표준 SQL 또는 Oracle을 사용하여 인덱스를 선택할 수 없습니다.

    아니, 당신도 표준 SQL 또는 Oracle을 사용하여 인덱스를 선택할 수 없습니다.

    다른 데이터베이스 벤더 그러나,이 일을 위해 자신의 고유의 명령이있을 수 있습니다.

  6. from https://stackoverflow.com/questions/2768688/is-there-a-way-to-select-nth-column-in-a-select-clause-from-a-table-view by cc-by-sa and MIT license