首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

变列查询的有关问题

2012-01-29 
变列查询的问题CREATETABLE#TestTbl(col1VARCHAR(10),col2VARCHAR(10))INSERTINTO#TestTblVALUES( a , b )

变列查询的问题
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 处理,使用 动态列 和表 好像只能用上面那种

热点排行