2014-04-28 162 views
0

我有如下表(#TEMP)表的列名:如何訪問使用while循環

RowNo   Item 
1    A 
2    B 

我的要求是,如果Item等於B做動作。

declare @count int = 1 
    WHILE(@count < (select count(*) from #Temp)) 
    Begin 
    // Here I have to access my column name(Item) , so that I can check its value to B 
    set @count = @count + 1 
    End 

請建議

+2

你打算做什麼「行動」?在TSQL中使用循環很難找到解決方案,但它可能取決於您要採取的操作。 –

+0

就像'IF(SELECT COUNT(*)FROM #Temp WHERE Item ='B'> 0)'一個合適的測試?這會告訴你,如果你有任何行的地方'Item ='B'' – dash

+0

@dash:不,我不能這樣做,我必須使用循環,因爲可能有很多與Item:B相關的行,我必須選擇在每場比賽的情況下的RowNumber。 – user3124690

回答

-1

您可以使用DESCRIBE

DESCRIBE my_table; 

或者在新版本中,你可以使用INFORMATION_SCHEMA

SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'my_database' AND TABLE_NAME = 'my_table'; 

或者你可以使用SHOW COLUMNS

SHOW COLUMNS FROM my_table;