我的sql db的列名为(1,2,3,4到31)..我知道使用数字作为列名是不对的..但这是必要的..
我的前端有2个cmbo盒子;
namebox :which gets data from a name column ,
datebox: getting date column names.. (1,2,3.. 31 ).
我希望是..当我在两个框中更改选择时... txtbox应该更新值...
示例,此表;
Name 1 2 3 4
abc 500 600 700 800
从日期框中选择1并从名称框中选择abc时,我应该得到500; 我尝试了内联查询并得到了想要的答案,但它需要对日期框值进行硬编码。从表中选择[1],其中Name =' abc';
如何通过程序实现此目的?
这是我的程序代码:
create PROCEDURE [dbo].[getcelldata]
@name varchar(50),@col varchar(5)
AS
BEGIN
SELECT @col from table where Name=@name
答案 0 :(得分:0)
可能借助于下面的动态查询
create PROCEDURE [dbo].[getcelldata]
@name varchar(50),@col varchar(5)
AS
BEGIN
declare @sql varchar(100);
set @sql = 'SELECT [' + @col + '] from table where Name = '+ @name;
exec (@sql);
END