1.SqlServer数据库没有Limit函数如何分页查询?1】用offset #{index} rows fetch next #{batchSize} rows only;2】用TOP关键字
先说第二种方式:(效率比第一种方式较低)
再说第一种方式:(效率比第二种方式较高)
此种语法必须加order by排序
select a.memberid,a.membershipid,a.LoyaltyProgramID,a.PhoneNumber from dbo.bak_memberid_delete_20210818_copy1 as a
order by a.memberid ASC
offset 10 rows fetch next 1000 rows only;
batchSize 是自定义的每页显示条数,假如是10000条,即batchSize=10000;
index 是偏移量,第一页偏移量是0 * batchSize是index=0,第二页偏移量是1 * batchSize是index=10000,依次类推。
2.字符串字段查询区分大小写
select
*
from tb_user
where
userName collate Chinese_PRC_CS_AS_WS = ‘Drinks’
and passWord = ‘123’
是否区分大小写与排序规则有关,排序规则中各部分含义如下所示:
举例分析 Chinese_PRC_CS_AI_WS
前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则。
排序规则的后半部份即后缀 含义:
_BIN 二进制排序 www.2cto.com
_CI(CS) 是否区分大小写,CI不区分,CS区分
_AI(AS) 是否区分重音,AI不区分,AS区分
_KI(KS) 是否区分假名类型,KI不区分,KS区分
_WI(WS) 是否区分宽度 WI不区分,WS区分
区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。
区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项。如果选择该选项,比较还将重音不同的字 母视为不等。
区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。
区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项
format函数
select count(1) from guest.Import_Member_Excel where
FORMAT(CreateDate,‘yyyy-MM-dd’) = ‘2021-09-16’ ;
– 2021-09-16 13:40:11.073 20条数据
isnull(参数1,参数2),判断参数1是否为NULL,如果是,返回参数2,否则返回参数1。
group by … having count(1) > 1
select a.PhoneNumber as phoneNumber,a.MembershipID as membershipID,
a.LoyaltyProgramID as loyaltyProgramID,count(1) as duplicateNum from
(
(select * from guest.Import_Member_Excel where IsDeleted = '0' and State='2')
union all
(select * from guest.Import_Member_Excel where id in
<foreach collection="idList" item="id" separator="," open="(" close=")">
#{id}
</foreach>
and State='1' and IsDeleted='0')
) as a
GROUP BY a.PhoneNumber,a.MembershipID,a.LoyaltyProgramID HAVING count(1) > 1