用于通配符搜索的SQL Server函数

问题描述 投票:0回答:1

样品表:

ColumnA    ColumnB
------------------
C*         value1 
Chi*       Value2 
Chil*      value3 

现在我需要一个函数,它可以根据ColumnA中具有最接近或完全匹配的输入返回列值。

例如:

  • 如果我的输入是'智利'那么它应该返回value3
  • 如果我的输入是'中国'那么它应该返回value2
  • 如果我的输入是'哥伦比亚'那么它应该返回value1
sql-server tsql sql-server-2014 sql-server-2016
1个回答
3
投票

不是sargable,但是功能正常。

Declare @S varchar(50)='China'

Select Top 1 * 
 From  YourTable
 Where @S like Replace(ColumnA,'*','%')
 Order by len(ColumnA) Desc

返回

ColumnA ColumnB
Chi*    value2
© www.soinside.com 2019 - 2024. All rights reserved.