这是一个在FTSdata字段上进行全文搜索的示例表:
CREATE TABLE dbo.tTest (Id INT, FTSdata VARCHAR(100));
INSERT INTO dbo.tTest (Id, FTSdata) VALUES
(1, 'foo WordA'),
(2, 'foo WordAaabbb'),
(3, 'WordB bar'),
(4, 'WordBbbaaa bar');
Run Code Online (Sandbox Code Playgroud)
无论用户是输入"WordA"还是"WordB",我都希望找到所有这些记录.
我的词库看起来像这样:
<expansion>
<sub>WordA</sub>
<sub>WordB</sub>
</expansion>
Run Code Online (Sandbox Code Playgroud)
我需要类似的东西
SELECT *
FROM dbo.tTest
WHERE CONTAINS(FTSdata, 'FORMSOF (THESAURUS, "WordA*")');
Run Code Online (Sandbox Code Playgroud)
但不幸的是,FORMSOF谓词不支持星号.
我正在编写一个 SP,其中的输出预计为表格。但无法以表格式获取输出,而是将其作为对象接收单个值或一列中的所有行,同时使用数组作为返回类型。
create or replace table monthly_sales(empid int, amount int, month text)
as select * from values
(1, 10000, 'JAN'),
(1, 400, 'JAN'),
(2, 4500, 'JAN'),
(2, 35000, 'JAN'),
(1, 5000, 'FEB'),
(1, 3000, 'FEB'),
(2, 200, 'FEB'),
(2, 90500, 'FEB'),
(1, 6000, 'MAR'),
(1, 5000, 'MAR'),
(2, 2500, 'MAR'),
(2, 9500, 'MAR'),
(1, 8000, 'APR'),
(1, 10000, 'APR'),
(2, 800, 'APR'),
(2, 4500, 'APR'),
(2, 10000, 'MAY'),
(1, 800, 'MAY');
----------------------------------------------------------
select * from MONTHLY_SALES;
------------------------------------------------------------
create or replace …Run Code Online (Sandbox Code Playgroud)