【发布时间】:2011-02-10 13:06:50
【问题描述】:
这是我今天提出的(其他)愚蠢问题的续集
我在 SQL Server 中有一个存储过程,它需要根据关键字选择某些行,例如:
@Key varchar(5) = 'a'
select * From Products where ProductName like 'a%'
现在,@Key 可以包含 0-9 和 XYZ 之类的值,除了从 A、B 到 W 的所有其他普通字符
所以当@Key 是XYZ 时,它需要选择所有以字母X、Y、OR Z 开头的产品,当它的0-9 时,它应该选择所有以数字开头的产品.
所以我现在拥有的是:
WHERE
(@Key='xyz' and (name like 'x%' or name like 'y%' or name like 'z%'))
or name LIKE @Keyword +'%'
现在,为了让 proc 获取号码,我应该做一些类似于 XYZ 的操作,但包含 name like '0%' or name like '1%' 十次。
当然,应该有更好的方法让 SQL Server 选择从十进制开始的名称?
这是唯一的方法吗?
谢谢。
对不起,如果我问的问题太多了!
【问题讨论】:
标签: sql-server where-clause sql-like