我正在使用Confluence网页,该网页显示基于数据库功能的下拉列表。此功能没有参数。此函数返回视图的结果。
当我开始在文本字段中输入一些文本时,下拉列表结果显示数据排序。
实例:
text entered : toto
dropdown list list result :
aaa.toto.aim
aaa.toto.becare
toto
toto.aim
toto.aim.thisis
toto.becare
toto.becare.xxx
视图有多列:code_part1,code_part2,code_part3,fullcode(对应于结果显示,code_part1 +'。'+ code_part2 +'。+ + code_part3的串联):
fullcode | code_part1 | code_part2 | code_part3
aaa.toto.aim | aaa | toto | aim
aaa.toto.becare | aaa | toto | becare
toto | toto | (null) | (null)
toto.aim | toto | aim | (null)
toto.aim.thisis | toto | aim | thisis
toto.becare | toto | becare | (null)
toto.becare.xxx | toto | becare | xxx
如何使用order by子句更新函数取决于我在文本框中输入的内容(此处为“toto”):
toto
toto.aim
toto.aim.thisis
toto.becare
toto.becare.xxx
aaa.toto.aim
aaa.toto.becare
提前谢谢。
问候
答案 0 :(得分:0)
您可以按顺序使用案例
DECLARE @SearchString CHAR ='toto'
SELECT fullcode
FROM TABLENAME
ORDER BY CASE WHEN part1 = @SearchString THEN part1 WHEN part2 = @SearchString THEN PART2 ELSE part3 END
答案 1 :(得分:0)
试试这个,
declare @t table(fullcode varchar(50),code_part1 varchar(50), code_part2 varchar(50), code_part3 varchar(50))
insert INTO @t VALUES
('aaa.toto.aim' ,'aaa' , 'toto' , 'aim' )
,('aaa.toto.becare' ,'aaa' , 'toto' , 'becare' )
,('toto' ,'toto' , null , null )
,('toto.aim' ,'toto' , 'aim' , null )
,('toto.aim.thisis' ,'toto' , 'aim' , 'thisis' )
,('toto.becare' ,'toto' , 'becare' , null )
,('toto.becare.xxx' ,'toto' , 'becare', 'xxx' )
declare @key varchar(50)='toto'
select *,1 rownum from @t where code_part1=@key
union ALL
select *,2 rownum from @t where code_part2=@key
union ALL
select *,3 rownum from @t where code_part3=@key