SQL의 열 수로 특정 열을 선택할 수 있습니까?SQL 서버 숫자로 열 선택
SELECT columns(0), columns(3), columns(5), columns(8) FROM TABLE
감사
SQL의 열 수로 특정 열을 선택할 수 있습니까?SQL 서버 숫자로 열 선택
SELECT columns(0), columns(3), columns(5), columns(8) FROM TABLE
감사
당신은이 같은 TRANSACT SQL 문을 작성해야합니다 이렇게하려면 동적 SQL을 사용하십시오 :
DECLARE @strSQL AS nvarchar(MAX)
DECLARE @strColumnName AS nvarchar(255)
DECLARE @iCounter AS integer
DECLARE @curColumns AS CURSOR
SET @iCounter = 0
SET @strSQL = N'SELECT '
SET @curColumns = CURSOR FOR
(
SELECT * FROM
(
SELECT TOP 99999
COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'T_Markers'
AND ORDINAL_POSITION < 4
ORDER BY ORDINAL_POSITION ASC
) AS tempT
)
OPEN @curColumns
FETCH NEXT FROM @curColumns INTO @strColumnName
WHILE @@FETCH_STATUS = 0
BEGIN
-- PRINT @strColumnName
IF @iCounter = 0
SET @strSQL = @strSQL + N'
[' + @strColumnName + N'] '
ELSE
SET @strSQL = @strSQL + N'
,[' + @strColumnName + N'] '
SET @iCounter = @iCounter + 1
FETCH NEXT FROM @curColumns INTO @strColumnName
END
CLOSE @curColumns
DEALLOCATE @curColumns
SET @strSQL = @strSQL + N'
FROM T_Markers
'
PRINT @strSQL
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'myTable' AND ORDINAL_POSITION = '3'
이 문 같은 뭔가 테이블의 세 번째 열을 반환
당신은
DECLARE @columnname nvarchar(100), @sql nvarchar(500)
SELECT @columnname = ORDINAL_POSITION FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'myTable' AND ORDINAL_POSITION = '3'
SET @sql = 'SELECT ' + @columnname + ' FROM mytable'
EXEC @sql
이렇게 복잡한 답변에 대해서는 적극 권장합니다. 다른 사람이 이미 귀하의 질문에 아래에 지적
대신이 답변을 확인해야합니다 :
Access columns of a table by index instead of name in SQL Server stored procedure
는 SQL 규격은 DDL 또는 DML에 eiher 동적 스키마 구축되지 않습니다.
SELECT를 적용하고 숫자 열을 선택하지 마십시오. 그것은 덜 performant, 덜 읽을 수 있으며 분명히 당신이 스키마를 변경하면 실패합니다.
MySQL의에서 당신은
SELECT * FROM mytable LIMIT 2,1;
2를 시작하려는 행의 수를 = 사용할 수 있습니다.
1 = 이전 번호부터 선택하려는 행 수.
도움이 되었기를 바랍니다.
LIMIT는 열이 아닌 반환되는 행 수를 제어합니다. – Robert
확인 http://stackoverflow.com/questions/368505/is-it-possible-to-select-sql-server-data-using-column-ordinal-position –
답변을 확인하십시오. http://stackoverflow.com/a/4883109/1504882 – Elias
여기 완벽하게 답변하여 질문에 대한 비슷한 질문입니다 : http://stackoverflow.com/questions/4882837/access-columns-of-a-table-by- index-of-name-in-sql-server-stored-procedure – Karamafrooz