我有以下sql命令
var Query = new SqlCommand(@"SELECT [file] FROM [ApplicationSettings] WHERE [id] = @id And username=@username", con);
Query.Parameters.AddWithValue("@id", fileName);
Query.Parameters.AddWithValue("@username", userName ?? //then what?! );
userName是一个字符串(sql中的NVARCHAR),有时它有一个值,有时它被设置为null, 所以我有2个案例
username='someUserName'
username=Null
如何在没有if语句或任何其他检查的当前语法中实现此目的
答案 0 :(得分:2)
尝试类似:
SELECT [file] FROM [ApplicationSettings]
WHERE [id] = @id And username=ISNULL(@username,username)
如果@username为NULL,它会将用户名与用户名进行比较,该用户名始终为true;如果它不为null,则它将比较username = @username。 您也可以使用CASE进行比较,但我发现上面的语法更加清晰。