SQL不是不区分大小写吗?为什么我的要区分?

时间:2021-12-27 04:31:55
不是说SQL查询不区分大小写吗?为什么我在查询时用大写能够查出来。用小写查不出来?

first   last        id             age   city      province
Zhang   Jiangsheng     95123043    23    汕头     广东
Huang   Weidong         98122001    23   深圳     广东
Li   Simin         98111234    34   珠海     广东
Zhang   Sanmei         99232211    26   厦门     福建
Jiang   Dongsheng      98000190    28   重庆     四川
Liu   Tongxin         97231231    31   海南     海南

如上面这个表我用语句查询first字段以Z开头的。为什么用小写就不行呢?

select * from [sheet3$] where first like 'z%'    我这个是在EXCEL中查询的。没有在SQL2000中查询。我用EXCEL透视表的SQL语句进行查询。所以我的表头是工作表的形式。用小写就查不到任何记录。我把z改成大写Z就可以查到有二行数据。这是为什么?请教

18 个解决方案

#1


区不区分大小写,安装时可以设置的

#2


引用 1 楼 mcxhh2005 的回复:
区不区分大小写,安装时可以设置的

#3


看设置了

#4


我这个没有在SQL2000中查询。我是直接在EXCEL的用法。想知道SQL默认的这个查询是不是要区分大小写?

#5



create table test(name varchar(10))
insert test
select 'a' union all
select 'A'

go

select * from test where name like 'A'
--drop table test

name       
---------- 
a
A

(所影响的行数为 2 行)


#6


--TRY
select * from [sheet3$] where first collate Chinese_PRC_CI_AS like 'z%'

#7


查询EXCEL里面的数据,你的EXCEL设置了区分大小写?

#8


大小寫的z ASCII码值都不一樣 要麼你用upper(大寫) 或 lower 函數轉出

#9


引用 4 楼 dg831451 的回复:
我这个没有在SQL2000中查询。我是直接在EXCEL的用法。想知道SQL默认的这个查询是不是要区分大小写?
sql 区分不区分大小写是自己设置的。

#10


试试对你的execl 使用Indirect 函数 让它不区分大小写在查找试试

#11


引用 1 楼 mcxhh2005 的回复:
区不区分大小写,安装时可以设置的

同意

#12


引用 10 楼 beirut 的回复:
试试对你的execl 使用Indirect 函数 让它不区分大小写在查找试试


我用indirect函数是结果是一样的。
如我在C13单元格录入 A    C14单元格录入a      函数分别是
indirect(C13&7)    indirect(C14&7)   得到的结果一样。

还有我工作的电脑没有装SQL2000。我只是用EXCEL导入外部数据的时候还是对EXCEL中的数据进行查询的

#13


引用 12 楼 dg831451 的回复:
引用 10 楼 beirut 的回复:
试试对你的execl 使用Indirect 函数 让它不区分大小写在查找试试


我用indirect函数是结果是一样的。
如我在C13单元格录入 A    C14单元格录入a      函数分别是
indirect(C13&7)    indirect(C14&7)  得到的结果一样。

还有我工作的电脑没有装SQL2000。我只是用EXCEL导入外部数据的时候还是对EXCEL中的数据进行查询的

你不是在sql2000里查询?

#14


我开始就说了我不是在SQL2000中查询的。我的现在的工作电脑也没有装SQL2000,我是在EXCEL中查询的。EXCEL中有一个导入外部数据的功能。这个功能也是用SQL语句对EXCEL文件来查询的。只是有一些用法与SQL2000中的用法不一样而已。

#15


没遇过这个问题哦

#16


SQL区不区分大小写,安装时可以设置的

默认不区分

#17


引用楼主 dg831451 的回复:
不是说SQL查询不区分大小写吗?为什么我在查询时用大写能够查出来。用小写查不出来?

first   last       id             age   city      province
Zhang   Jiangsheng    95123043   23   汕头     广东
Huang   Weidong         98122001   23   深圳     广东
Li   Simin         98111234   34   珠海     广东
Zhang   Sanmei         99232211   26   厦门     福建
Jiang   Dongsheng      98000190   28   重庆     四川
Liu   Tongxin         97231231   31   海南     海南

如上面这个表我用语句查询first字段以Z开头的。为什么用小写就不行呢?

select * from [sheet3$] where first like 'z%'    我这个是在EXCEL中查询的。没有在SQL2000中查询。我用EXCEL透视表的SQL语句进行查询。所以我的表头是工作表的形式。用小写就查不到任何记录。我把z改成大写Z就可以查到有二行数据。这是为什么?请教


所谓的不区分大小写是针对数据库中的字段名以及一些内置的参数函数什么的,而不是字段下面的数据…… 你想想如果数据都可以不分大小写,那要有多少重复的数据啊……  

#18


学习了,SQL数据库默认不区分大小写。

#1


区不区分大小写,安装时可以设置的

#2


引用 1 楼 mcxhh2005 的回复:
区不区分大小写,安装时可以设置的

#3


看设置了

#4


我这个没有在SQL2000中查询。我是直接在EXCEL的用法。想知道SQL默认的这个查询是不是要区分大小写?

#5



create table test(name varchar(10))
insert test
select 'a' union all
select 'A'

go

select * from test where name like 'A'
--drop table test

name       
---------- 
a
A

(所影响的行数为 2 行)


#6


--TRY
select * from [sheet3$] where first collate Chinese_PRC_CI_AS like 'z%'

#7


查询EXCEL里面的数据,你的EXCEL设置了区分大小写?

#8


大小寫的z ASCII码值都不一樣 要麼你用upper(大寫) 或 lower 函數轉出

#9


引用 4 楼 dg831451 的回复:
我这个没有在SQL2000中查询。我是直接在EXCEL的用法。想知道SQL默认的这个查询是不是要区分大小写?
sql 区分不区分大小写是自己设置的。

#10


试试对你的execl 使用Indirect 函数 让它不区分大小写在查找试试

#11


引用 1 楼 mcxhh2005 的回复:
区不区分大小写,安装时可以设置的

同意

#12


引用 10 楼 beirut 的回复:
试试对你的execl 使用Indirect 函数 让它不区分大小写在查找试试


我用indirect函数是结果是一样的。
如我在C13单元格录入 A    C14单元格录入a      函数分别是
indirect(C13&7)    indirect(C14&7)   得到的结果一样。

还有我工作的电脑没有装SQL2000。我只是用EXCEL导入外部数据的时候还是对EXCEL中的数据进行查询的

#13


引用 12 楼 dg831451 的回复:
引用 10 楼 beirut 的回复:
试试对你的execl 使用Indirect 函数 让它不区分大小写在查找试试


我用indirect函数是结果是一样的。
如我在C13单元格录入 A    C14单元格录入a      函数分别是
indirect(C13&7)    indirect(C14&7)  得到的结果一样。

还有我工作的电脑没有装SQL2000。我只是用EXCEL导入外部数据的时候还是对EXCEL中的数据进行查询的

你不是在sql2000里查询?

#14


我开始就说了我不是在SQL2000中查询的。我的现在的工作电脑也没有装SQL2000,我是在EXCEL中查询的。EXCEL中有一个导入外部数据的功能。这个功能也是用SQL语句对EXCEL文件来查询的。只是有一些用法与SQL2000中的用法不一样而已。

#15


没遇过这个问题哦

#16


SQL区不区分大小写,安装时可以设置的

默认不区分

#17


引用楼主 dg831451 的回复:
不是说SQL查询不区分大小写吗?为什么我在查询时用大写能够查出来。用小写查不出来?

first   last       id             age   city      province
Zhang   Jiangsheng    95123043   23   汕头     广东
Huang   Weidong         98122001   23   深圳     广东
Li   Simin         98111234   34   珠海     广东
Zhang   Sanmei         99232211   26   厦门     福建
Jiang   Dongsheng      98000190   28   重庆     四川
Liu   Tongxin         97231231   31   海南     海南

如上面这个表我用语句查询first字段以Z开头的。为什么用小写就不行呢?

select * from [sheet3$] where first like 'z%'    我这个是在EXCEL中查询的。没有在SQL2000中查询。我用EXCEL透视表的SQL语句进行查询。所以我的表头是工作表的形式。用小写就查不到任何记录。我把z改成大写Z就可以查到有二行数据。这是为什么?请教


所谓的不区分大小写是针对数据库中的字段名以及一些内置的参数函数什么的,而不是字段下面的数据…… 你想想如果数据都可以不分大小写,那要有多少重复的数据啊……  

#18


学习了,SQL数据库默认不区分大小写。