2013-09-26 46 views
0

是否有可能通過保持參數where子句中像下面得到的值:參數作爲列名在where子句

DECLARE @COLUMNNAME VARCHAR(50) 
-- setting required column name 
SET @COLUMNNAME = (select name from sys.columns where OBJECT_ID = 
    (SELECT OBJECT_ID FROM SYS.objects WHERE name = 'BORVALIDATION') AND column_id = 2) 
--PRINT @COLUMNNAME (we do get the column name) 
SELECT * FROM BORVALIDATION WHERE @COLUMNNAME = 'BBNAME' 

您的知識和幫助表示高度讚賞。

+1

像使用動態SQL? – Kermit

+1

這是不是很清楚你到底在問什麼。你能重申這個問題嗎? – EkoostikMartin

+0

代碼正在參數(@列名)中取表的列名,例如 列名稱是列2 即時試圖編寫 SELECT * FROM BORVALIDATION WHERE @COLUMNNAME(即Column2)='BBNAME' – HMcompfreak

回答

3

您可以使用動態SQL:

Declare @SQL VARCHAR(4000) 
SET @SQL = 'SELECT * FROM BORVALIDATION WHERE ' + @COLUMNNAME + '= ''BBNAME'''; 
EXEC(@SQL);