[英]Search numeric or string value as wildcard in sql server
我们需要在我们的网页中实现搜索功能。 逻辑如下,
wildcard
应用于员工table
的 Staffid 列。wildcard
将应用于员工table
的员工姓名列。上面的场景是如何实现sql server的?
谢谢您的帮助。
正如我所提到的,更好的方法是使用 2 个参数和分支搜索,具体取决于哪个被填充或执行一个查询。 但是,如果您坚持这样做,您可以这样做:
DECLARE @p VARCHAR(10) = 'jo'
--DECLARE @p VARCHAR(10) = '34'
DECLARE @t TABLE(StuffID INT, Name VARCHAR(100))
INSERT INTO @t VALUES
(1234, 'Michael Jordan'),
(7845, 'Scottie Pippen'),
(6541, 'Dennis Rodman'),
(1987, 'Phil Jackson')
SELECT * FROM @t
WHERE (@p NOT LIKE '%[^0-9]%' AND StuffID LIKE '%' + @p + '%') OR
(@p NOT LIKE '%[^a-z]%' AND Name LIKE '%' + @p + '%')
这可以理解为:如果@p
在StuffID
列中不包含除数字搜索之外的符号,或者如果它在Name
列中不包含除字符搜索之外的符号。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.