使用varyng源列选择数据

时间:2014-12-08 20:10:54

标签: c# sql-server-2008

我想知道是否有办法选择"喜欢"。 例如,我有列h1,h2,h3我希望我的选择根据用户输入选择要抓取的列。

Select like "user var will be 1,2 or 3" from table

你可以选择不同的选择吗?或者我必须这样做 Select * from table然后过滤我的数据表?

另一个虽然我有把它添加到C#

中的用户var上

Select 'h" + var + " ' from table

3 个答案:

答案 0 :(得分:1)

您可以动态构建查询:

int col = Convert.ToInt32(request["usercolumn"]);
string q = "SELECT h" + col + " FROM table";

我的c#有点弱,但这里要点是用户输入,确保它是一个整数并使用用户输入构建你的查询。

答案 1 :(得分:0)

SELECT *通常是不好的做法。如果您执行类似数据表过滤的操作,我会明确指定可能的列。我还会看一下使用动态SQL。 Dynamically choose column in SQL query

答案 2 :(得分:0)

Robbert代码可以工作但是如果使用将输入大于3然后这将给出错误,更好地使用这样的情况

DECLARE @col int  = 1
select case @col when 1 then h1
                 When 2 then h2
                 Else h3 END
From table