一个关于空格的Sql Server面试题

引子

先上题目:

回答下面sql 的输出结果

declare @s1 varchar(10)
declare @s2 varchar(10)
set @s1='a b'
set @s2='a b' 

if @s1=@s2 select 'true' 

答案是 true

那么上面的 s1 和 s2 是否相等的呢?

我们再看看下面的sql

declare @s1 varchar(10)
declare @s2 varchar(10)
set @s1='A b'
set @s2='A b'  
if @s1=@s2 select 'true' 

答案也是 true

这道面试题的目的是以题目为契机,引出数据库下面的知识点:

1、字符串字段

2、排序规则

3、排序规则和相等的关系

分析

我们开始分析s1 和  s2 这俩字符串。他们是否相等,如果我们用c++、delphi、C# 等语言来判断,显示是不等,但是在sql server中,有时候是相等的(如上图)。

sql server 和 c++、delphi、C# 的运算 结果不一样,他们之中谁错了?

他们都没有错,因为他们都是按照自己的规则运算的。c++、delphi、C#等语言是字符串处理,俺就不谈了,C++的字符串操作可以写半本书。

我们先从 sql server的字符串类型开始说,sql server的字符串类型常用的有:

  • char(32)
  • varchar(31)
  • nchar(31)
  • nvarchar(31)
  • text
  • varchar(max)
  • nvarchar(max)

除了类型之外,还要一个需要的注意的就是排序规则。

执行SELECT DATABASEPROPERTYEX('master', 'Collation')

在Chinese_PRC_CI_AS下,上面的s1  和  s2 的每个字符的排序是一致的,所以 sql server 认为 s1 和 s2 是相等的。由此可以看出,在 sql server 中的字符串比较是按照Chinese_PRC_CI_AS进行计算的。

另:Chinese_PRC_CI_AS

Chinese_PRC_CI_AS,前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则。

排序规则的后半部份即后缀 含义:
_BIN: binary sort 二进制排序
_BIN2:binary code point comparison sort
_AS、_WS等选项的字母代表的意义如下:
C:case,大小写
A:accent,重音
K:kanatype,假名
W:width,宽度
I:insensitive, 不敏感,不区分
S:sensitive,敏感,区分
如 CI 就是case-insensitive,不区分大小写。
更详细说明:
_CI(CS) :是否区分大小写,CI不区分,CS区分。
_AI(AS) :是否区分重音,AI不区分,AS区分。
_KI(KS) :是否区分假名类型,KI不区分,KS区分。
_WI(WS) :是否区分宽度 WI不区分,WS区分。
提示说明:
区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。
区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项。如果选择该选项。比较还将重音不同的字母视为不等。
区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。
区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/735834.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

鞋子分类数据集17399张69类别

数据集类型:图像分类用,不可用于目标检测无标注文件 数据集格式:仅仅包含jpg图片,每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数):17399 分类类别数:69 类别名称:[“0”,“1”,“2”,“3”,“4”…

计组_指令的执行过程

2024.06.19:计算机组成原理指令的执行过程学习笔记 第18节 指令的执行过程 8.1 指令周期8.2 指令的执行过程8.2.1 取指令8.2.2 译码8.2.3 根据源操作地址计算并取操作数8.2.4 执行数据操作8.2.5 目的操作数地址计算并存结果 8.3 指令的数据流8.3.1 取值周期的数据流…

切换国内yum源

切换国内yum源 一、备份现有YUM源二、下载新的YUM源配置文件三、先清理YUM缓存再生成四、测试新的YUM源五、重启系统服务(生效可以不重启)可选 首先,切换国内YUM源的具体步骤取决于您使用的Linux发行版和当前的YUM源配置。以下是一般步骤,适用于大多数基…

CSS基础学习记录(5)

目录 1、CSS语法 2、实例 3、CSS注释 4、id 选择器 5、class 类选择器 6、标签选择器 7、内联选择器 1、CSS语法 CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明: 选择器(Selector)通常是您需要改变样式的 HTML …

【机器学习300问】125、什么是双向循环神经网络(BRNN)?什么是深度循环神经网络(DRNN)?

一、双向循环神经网络 (1)诞生背景 双向循环神经网络(Bidirectional Recurrenct Neural Network, BRNN)是在深度学习领域发展起来的一种特殊类型的循环神经网络(RNN),它诞生的背景是为了解决传…

烧结刚玉砂轮片 CBN砂轮 氮化硼砂轮 磨具用晶谷低温陶瓷结合剂玻璃粉

晶谷烧结刚玉砂轮低温陶瓷结合剂玻璃粉具有以下特点: - 软化点:软化点在450至650度之间。 - 热膨胀系数:热膨胀系数为(50至120)10-7。 - 粒径:粒径为300至3000目,可按要求订做。 - 外观颜色&a…

sudo 权限之危险的 bash 命令

文章目录 [toc]事出有因干就完事了创建用户配置 sudo 权限sudo 验证使用 bash 命令执行 chmod 命令使用 bash 命令执行删根 事出有因 使用普通用户安装 tidb 时,发现报错了,报错内容如下: ERROR SSHCommand {"host": "…

硕思闪客精灵软件安装包下载+详细安装教程

​有目共睹的是闪客精灵专业版的优势:能够安装一台电脑,终身免费升级。根据大数据结果显示闪客精灵支持将不带脚本的Flex生成的SWF导出为Flex文件。从大部分从业者反应来看它能反编译Flash的所有元素,并且支持动作脚本 AS3.0,使用闪客精灵专业…

python rename报错怎么解决

刚接触python,写了一段简单的代码,功能就是重命名一个文件,代码如下: list_1os.listdir(".") for files in list_1:fopen(files)if f.name"01.txt":os.rename(01.txt,001.txt)elif f.name"05.txt":…

AI 大模型应用开发实战(04)-AI生态产业拆解

1 行业全景图 2 结构拆解AI GC 生成式AI这个产业。分成上中下游三大块。 2.1 上游基础层 主要包括: 算力:包括AI芯片和云服务等,例如像英伟达、AMD以及华为等厂商提供的算力基础设施。大型模型基于Transformer架构,对算力的需…

【Sklearn驯化-环境配置】一文搞懂sklearn建模的最优环境搭建用法

【Sklearn驯化-环境配置】一文搞懂sklearn建模的最优环境搭建用法 本次修炼方法请往下查看 🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地! 🎇 相关内容文档获取 微信…

CARLA自动驾驶模拟器基础

CARLA 使用服务器-客户端架构运行,其中 CARLA 服务器运行模拟并由客户端向其发送指令。客户端代码使用 API 与服务器进行通信。要使用 Python API,您必须通过 PIP 安装该模块: pip3 install carla-simulator # Python 3World and client 客…

【职场人】如何与同事有效沟通

在职场中,沟通如同桥梁,连接着每一位职场人士的心灵与智慧。有效的沟通不仅能让工作更加顺畅,还能让团队关系更加和谐。那么,如何与同事进行有效沟通呢?下面,我将结合个人经验和一些幽默的比喻,…

Python的pip切换国内源

📚目录 起因:pip切换国内源:操作永久修改pip配置文件测试永久源配置是否成功 pip其他环境的配置永久源配置 起因: pyCharm安装模块的手出现ModuleNotFoundError: No module named distutils 由于使用pip install distutils下载不了…

绘制口罩maskTheFace数据源是300w_lp

官网下载mask the face 代码,增加代码draw_face.py import argparse import cv2 import scipy.io from tqdm import tqdm from utils.aux_functions_2 import *# 设置命令行输入参数 parser argparse.ArgumentParser(description"MaskTheFace - Python code…

用腾讯云语音合成(TTS)批量生成英语绘本的朗读音频

孩子进行英语启蒙,需要看很多英语绘本,而且要听配套的音频来练听力。但有些英语绘本是没有对应音频的,下面简单几步,就可以将任意英语绘本制作出对应的英语朗读音频。 先到电子书资源网站搜索这个绘本名称,如果有电子…

C++学习合集

#整理到一块,方便查东西,顺便补充一些之前没有学习到的东西# 变量 char--1字节 short--2字节 int-4字节 long--4字节 long long(int)--8字节;准确来说变量的大小取决于编译器,1字节8个二进制位,其中最高位为符号位…

不需要new关键字创建实例?jQuery是如何做到的

这篇文章是jQuery源码专栏的开篇文章了,有人会问为什么都2024年了, 还要研究一个已经过时的框架呢,其实,jQuery对比vue和react这种响应式框架,其在使用上算是过时的,毕竟直接操作DOM远不如操作虚拟DOM来的方…

头歌资源库(16)分苹果

一、 问题描述 二、算法思想 首先,我们可以初始化一个数组apple来记录每个孩子分配的苹果数量,将所有元素初始化为1,表示每个孩子至少分配到一个苹果。 然后,从左到右遍历评分数组ratings,判断当前孩子的评分与前一个…

Docker 简介【虚拟化、容器化】

Docker 简介 Docker 简介什么是虚拟化、容器化案例 为什么要虚拟化、容器化?- 资源利用率高- 环境标准化- 资源弹性伸缩- 差异化环境提供- 沙箱安全- 容器对比虚拟机更轻量,启动更快- 维护和扩展容易 虚拟化实现方式应用程序执行环境分层- 硬件层&#x…