我想编写一个UDF,它将一个字符串作为User的参数。然后该函数必须在表的该列中找到最长的匹配序列/子序列。
例如, 表名 - >患者 列名称 - >姓
现在,如果用户传递了一个字符串,我们就说Johni
到这个函数,FirstName
列有'Johna',JohnDoe
,Johi,
Simran`
该函数应返回一个表,其值按降序递减,即
和Simran
。我对在列值中进行此搜索毫无头绪。
答案 0 :(得分:2)
使用Difference
功能
SELECT a,Difference('Johni', a)
FROM (SELECT 'Johna' a
UNION
SELECT 'JohnDoe'
UNION
SELECT 'Johi'
union
select 'Simran') o
where Difference('Johni', a)>=3
ORDER BY Difference('Johni', a) DESC
更新:从表中选择
SELECT FirstName
FROM yourtable
WHERE Difference('Johni', FirstName) >= 3
ORDER BY Difference('Johni', FirstName) DESC