2014-02-10 63 views
3

如何找到一個字符串基於輸入字符在sql?找到一個字符串根據輸入字符在sql

例如:

表1列名:desc

data warehousing 
sql serverl 
c#.Net 
asp.net 
  • 我輸入:@FindString='dho'應該返回'data warehousing'

  • 我輸入:@FindString='sv'應該返回'sql serverl'

  • 我輸入:@FindString='aep'應該返回'asp.net'

如何做到這一點?

+1

心解釋爲什麼需要這麼奇怪? – Raj

+1

'aep' - >'asp.net'?!!?!?!?你得解釋一下! –

+0

關於全文檢索的更多信息,您將需要使用FTS及其「此處的[屈曲形式搜索功能](請閱讀此處)(http://technet.microsoft.com/zh-cn/library/ms142571.aspx) –

回答

1

轉到與此代碼:

SELECT * FROM table WHERE field like '%d%' AND field like '%h%' AND field like '%o%' 

我的意思是,你應該與周圍%的輸入字符串的每個字符。

+0

它可以包含任意順序我的意思•我的輸入:@查找字符串=「AEP」應該返回「ASP。淨' – Ram

+0

使用此:SELECT * FROM表WHERE字段如'%d%'AND字段如'%h%'AND字段如'%o%'。 –

0

我想你想的:

declare @inputString nvarchar(max) = 'eap'; 

declare @where nvarchar(max) = 
    case @inputString 
     when 'dho' then 'data warehousing' 
     when 'sv' then 'sql serverl' 
     when 'eap' then 'asp.net' 
    else '' 
    end 

select * from Table1 
    where desc = @where 

也查詢可以是這樣的:

declare @inputString nvarchar(max) = 'dho' 

select * from 
    (select 
     case [desc] 
      when 'data warehousing' then 'dho' 
      when 'sql serverl' then 'sv' 
      when 'asp.net' then 'aep' 
      else '' 
     end 
     as [newDesc] 
    from [table])t 
where newDesc = @inputString 
相關問題