当我们数据中含有中文,或我们想要Select出中文,当我去查询的时候默认情况下是无法搜索、无法显示的。 这是因为默认是不支持中文,只有NVARCHAR才支持中文 例子:
代码语言:javascript复制
SELECT *
FROM [DataManagement].[PersonalDetails]
where ChineseName = '成龙'
这样是无法搜索出成龙的。
同理,以下查询也是无效的
代码语言:javascript复制DECLARE @date1 DATE, @date2 DATE, @date3 DATE, @date4 DATE;
SET @date1=GETDATE();
SET @date2=CONCAT((Select CurrentAcademicYear
from SchoolDataManagement),'-09-01');
SET @date3=CONCAT(((Select CurrentAcademicYear
from SchoolDataManagement) 1),'-03-01');
SET @date4=CONCAT(((Select CurrentAcademicYear
from SchoolDataManagement) 1),'-08-01');
IF @date1=@date2
SELECT '第一学期' as SemesterName
ELSE
IF @date1>@date2 AND @date1 <@date3
SELECT '第一学期' as SemesterName
ELSE
IF @date1>@date3 AND @date1 <@date4
SELECT '第二学期' as SemesterName;
如果你SELECT ‘第一学期’ 即可发现,’第一学期’会变成????问号
解决办法
在冒号前添加N即可
代码语言:javascript复制SELECT *
FROM [DataManagement].[PersonalDetails]
where ChineseName = N'成龙'
代码语言:javascript复制DECLARE @date1 DATE, @date2 DATE, @date3 DATE, @date4 DATE;
SET @date1=GETDATE();
SET @date2=CONCAT((Select CurrentAcademicYear
from SchoolDataManagement),'-09-01');
SET @date3=CONCAT(((Select CurrentAcademicYear
from SchoolDataManagement) 1),'-03-01');
SET @date4=CONCAT(((Select CurrentAcademicYear
from SchoolDataManagement) 1),'-08-01');
IF @date1=@date2
SELECT N'第一学期' as SemesterName
ELSE
IF @date1>@date2 AND @date1 <@date3
SELECT N'第一学期' as SemesterName
ELSE
IF @date1>@date3 AND @date1 <@date4
SELECT N'第二学期' as SemesterName;