如何使用sql select查询通过动态字段名称获取值 [英] How to get value by dynamic field Name using sql select query

查看:144
本文介绍了如何使用sql select查询通过动态字段名称获取值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在传递基于该列名的动态列名以获取值,并在我的表下方

I am passing dynamic column name base that column name to get the value and below i my table

Table_CandidateInfo

Id     Name        Age    City 

1      Mazhar      30     Gulbarga

20     Khan        29     Bidar

示例 1

Declare @ColumnName varchar(100), @Id int

set @ColumnName='Age' 
set @Id=20

select * from Table_CandidateInfo where ID=@Id and 

我无法通过 查询传递 ColumnName,因为列名是动态传递代码.我的输出应该是

I am not able to pass ColumnName with and query because column name is dynamic pass by code. My output should be

29

示例 2:如果我的 @ColumnName='City' 和 @Id=20 则输出应如下所示

Example2: If my @ColumnName='City' and @Id=20 then output should be like below

Bidar

推荐答案

我认为您真正想要的是以下内容:

I think what you are actually after is the below:

DECLARE @ColumnName sysname, @Id int;
SET @Id = 29;
SET @ColumnName = N'Age';

DECLARE @SQL nvarchar(MAX);
SET @SQL = N'SELECT ' + QUOTENAME(@ColumnName) + N' FROM dbo.Table_CandidateInfo WHERE Id = @Id;';
--PRINT @SQL; --Your debugging friend
EXEC sp_executesql @SQL, N'@Id int', @Id = @Id;

这篇关于如何使用sql select查询通过动态字段名称获取值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆