sql server 相关

文章探讨了全文索引在提高数据查询效率中的作用,同时指出其存储空间的需求。提到了CONTAINS谓词的功能,包括搜索词、短语、词形变化和同义词。此外,还展示了如何使用SQL进行行转列的数据转换,以更直观地呈现学生分数数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

全文索引:
正确的索引会大大提高数据查询、解决海量数据模糊查询的好方法
缺:
存储空间,每个索引都要空间存储
全文索引并不一定能达到like这个谓词的效果,如LIKE '%qq%'。

CONTAINS 谓词可以搜索:
词或短语。
词或短语的前缀。
与另一个词相邻的词。
由另一个词的词形变化而生成的词(例如,drive 一词是 drives、drove、driving 和 driven 词形变化的词干)。
使用同义词库确定的另一个词的同义词(例如,metal 一词可能有 aluminum 和 steel 等同义词)。

contains(字段名称, '" + "\"*{0}*\"" + "')  ", 搜索内容);这样写可以将数据尽可能接近使用like

关于行转列的例子

首先创建样例表

IF OBJECT_ID('tb') IS NOT NULL DROP TABLE tb
go
CREATE TABLE tb(姓名 VARCHAR(10),课程 VARCHAR(10),分数 INT)
insert into tb VALUES ('张三','语文',74)
insert into tb VALUES ('张三','数学',83)
insert into tb VALUES ('张三','物理',93)
insert into tb VALUES ('李四','语文',74)
insert into tb VALUES ('李四','数学',84)
insert into tb VALUES ('李四','物理',94)
go
SELECT * FROM tb
 
go

 进行行转列

SELECT 姓名, 
 max(CASE 课程 WHEN'语文' THEN 分数 ELSE 0 END) 语文, 
 max(CASE 课程 WHEN'数学' THEN 分数 ELSE 0 END) 数学, 
 max(CASE 课程 WHEN'物理' THEN 分数 ELSE 0 END) 物理 ,
  max(CASE 课程 WHEN'语文' THEN 分数 ELSE 0 END)+ max(CASE 课程 WHEN'数学' THEN 分数 ELSE 0 END)+max(CASE 课程 WHEN'物理' THEN 分数 ELSE 0 END) 
  AS 总分
FROM tb 
GROUP BY 姓名

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值