Sql server 2008 在where子句中如何使用like with between

Sql server 2008 在where子句中如何使用like with between,sql-server-2008,Sql Server 2008,亲爱的所有人,我正试图将like语句与where子句一起使用, 如图所示 select Col1 from Table where Col2 between ( case when Col2 ='' or col2 is null then '%' else 'Userinputmin' end) and ( case when Col2 ='' or col2 is null then '%' else 'Userinputmax' end) 如果用户在col2中

亲爱的所有人,我正试图将like语句与where子句一起使用, 如图所示

select  
  Col1 
from 
  Table
where 
  Col2 between ( case when Col2 ='' or col2 is null then '%' else 'Userinputmin' end) 
and
  ( case when Col2 ='' or col2 is null then '%' else 'Userinputmax' end)
如果用户在col2中输入一个字符值,那么它将从其最大值和最小值中过滤出来,如果用户没有输入任何值,那么我想使用所有的值。 谢谢你的帮助。
关于。

意味着@min和@max是一个参数

IF @min IS NOT NULL AND @max IS NOT NULL
    SELECT * FROM Tbl WHERE col BETWEEN @min AND @max

ELSE
    SELECT * FROM Tbl
由于您是在您的aspx页面中执行此操作,如果您将其放在“隐藏代码”页面中,可能类似的操作也会起作用

if (min != null && max != null)
{
    sqlcmd.CommandText = "SELECT * FROM Tbl WHERE col BETWEEN " + min + " AND " + max
}
else  
{
    sqlcmd.Commandtext = "SELECT * FROM Tbl"
}
像这样试试

select  
  Col1 
from 
  Table
where 
  (Col2 between 'Userinputmin' AND 'Userinputmax') OR (Col2 Like 'Userinputmin%') OR (Col2 Like 'Userinputmax%')

现在请检查,我没有在那里写其他内容,如果用户输入值,我必须写用户输入,否则我将使用所有值我不能在这里使用任何编程,我必须在我的查询中控制这一点,代码无法更改。我不明白你想说什么,你的意思是不能使用参数吗?如果是这样,那么如何捕获没有参数的用户输入?我正在aspx页面中使用此查询,并使用getfield函数获取输入。我刚刚编辑了我的解决方案,请检查类似的操作是否有效。