读书人

变列查询的有关问题

发布时间: 2012-01-29 21:39:32 作者: rapoo

变列查询的问题
CREATE TABLE #TestTbl

(

col1 VARCHAR(10)

, col2 VARCHAR(10)

)


INSERT INTO #TestTbl VALUES ( 'a ', 'b ')

INSERT INTO #TestTbl VALUES ( 'c ', 'd ')

第一种方法:

DECLARE @strSQL NVARCHAR(1000), @Colum VARCHAR(100), @Value VARCHAR(10)





SELECT @Colum = 'col2 ', @Value = 'b '



SELECT @strSQL = ' SELECT * FROM #TestTbl WHERE ' + @Colum + ' = ' ' ' + @Value + ' ' ' '



EXEC sp_executesql @strSQL

变成第二种方法:

DECLARE @Colum VARCHAR(100), @Value VARCHAR(10)

SELECT @Colum = 'col1 ', @Value = 'a '

SELECT * From #TestTbl WHERE .... 这种格式 ,结果不变 ,急

[解决办法]
SELECT * From #TestTbl WHERE
case @Colum
when 'col1 ' then col1
when 'col2 ' then col2
end= @Value

[解决办法]
DECLARE @Colum VARCHAR(100), @Value VARCHAR(10)

SELECT @Colum = 'a ', @Value = 'a '

SELECT * From #TestTbl WHERE @Colum=@Value

这样能选出来结果 , @Colum 作为字符处理了,没作为column 处理,使用 动态列 和表 好像只能用上面那种

读书人网 >SQL Server

热点推荐