我想知道是否有办法选择"喜欢"。 例如,我有列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
答案 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