Sql server 2008 在where子句中如何使用like with between
亲爱的所有人,我正试图将like语句与where子句一起使用, 如图所示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中
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函数获取输入。我刚刚编辑了我的解决方案,请检查类似的操作是否有效。