簡體   English   中英

在sql server中搜索數字或字符串值作為通配符

[英]Search numeric or string value as wildcard in sql server

我們需要在我們的網頁中實現搜索功能。 邏輯如下,

  1. 如果用戶輸入一個數值,即 Staffid,則wildcard應用於員工table的 Staffid 列。
  2. 如果用戶輸入字符串值,即員工姓名,則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 + '%')

這可以理解為:如果@pStuffID列中不包含除數字搜索之外的符號,或者如果它在Name列中不包含除字符搜索之外的符號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM