Sql 根据参数选择比较运算符
我想根据参数比较列 e、 gSql 根据参数选择比较运算符,sql,Sql,我想根据参数比较列 e、 g 创建过程[dbo]。[usp\u GetTenderBySearch] ( p_操作器字符(1), p_dtClosingDate日期时间 ) 像 从MyTable中选择* 在哪种情况下,p_操作器 当“=”时,则MyColumn=p\u dtClosingDate 当“>”时,则MyColumn>p\u dtClosingDate 当“这个怎么样: SELECT * FROM MyTable WHERE (p_strOperator = '=' AND My
创建过程[dbo]。[usp\u GetTenderBySearch]
(
p_操作器字符(1),
p_dtClosingDate日期时间
)
像
从MyTable中选择*
在哪种情况下,p_操作器
当“=”时,则MyColumn=p\u dtClosingDate
当“>”时,则MyColumn>p\u dtClosingDate
当“这个怎么样:
SELECT *
FROM MyTable
WHERE (p_strOperator = '=' AND MyColumn = p_dtClosingDate)
OR (p_strOperator = '>' AND MyColumn > p_dtClosingDate)
OR (p_strOperator = '<' AND MyColumn < p_dtClosingDate);
选择*
从MyTable
其中(p_strOperator='='和MyColumn=p_dtClosingDate)
或者(p_strOperator='>'和MyColumn>p_dtClosingDate)
或者(p_strOperator='避免不可搜索,或者,尽管我注意到这肯定会更好
Where
Case When p_strOperator = '=' THEN MyColumn ELSE p_dtClosingDate END = p_dtClosingDate
AND
Case When p_strOperator = '>' THEN MyColumn ELSE p_dtClosingDate+1 END > p_dtClosingDate
AND
Case When p_strOperator = '<' THEN MyColumn ELSE p_dtClosingDate-1 END < p_dtClosingDate
在哪里
当p_strOperator='='时,则MyColumn ELSE p_dtClosingDate END=p_dtClosingDate
和
当p_strOperator='>'时,则MyColumn ELSE p_dtClosingDate+1 END>p_dtClosingDate
和
当p_strOperator='除了只看到一列和一个参数外,还有什么不起作用?
Where
Case When p_strOperator = '=' THEN MyColumn ELSE p_dtClosingDate END = p_dtClosingDate
AND
Case When p_strOperator = '>' THEN MyColumn ELSE p_dtClosingDate+1 END > p_dtClosingDate
AND
Case When p_strOperator = '<' THEN MyColumn ELSE p_dtClosingDate-1 END < p_dtClosingDate