社区
C++ Builder
帖子详情
字段中有汉字,为何用SQL的WHERE语句检查不到?
BCBPLC
2010-05-17 11:04:13
SQL 2000 SERVER
建了一个数据库,表名 Nodes
有一个字段 NodeName, 类型为nvarchar(16)
字段内容 中有汉字: 我们
用SQL语句
select * from Nodes where NodeName='我们'
没法列出该记录,但内容为字母或数字就能成功检索到
select * from Nodes where NodeName='asdffff';
为何出现怪事
...全文
1833
5
打赏
收藏
字段中有汉字,为何用SQL的WHERE语句检查不到?
SQL 2000 SERVER 建了一个数据库,表名 Nodes 有一个字段 NodeName, 类型为nvarchar(16) 字段内容 中有汉字: 我们 用SQL语句 select * from Nodes where NodeName='我们' 没法列出该记录,但内容为字母或数字就能成功检索到 select * from Nodes where NodeName='asdffff'; 为何出现怪事
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
托塔雨天王
2011-07-25
打赏
举报
回复
2
字段内容 中有汉字: 我们
用like 别用=
select * from Nodes where NodeName like '%我们%'
BCB
2010-05-17
打赏
举报
回复
宽串的缘故
BCBPLC
2010-05-17
打赏
举报
回复
1
nvarchar是UNICODE编码,
所以常数汉字串前要加 N'这是汉字串'
BCBPLC
2010-05-17
打赏
举报
回复
解决了!
BCBPLC
2010-05-17
打赏
举报
回复
比如 select @status = N'stopped'
那么其中的字符串 stopped 前面为什么要加 N 呢?而且我们发现有些地方加 N 与否都没有影响,有些地方又必须加 N。
N 在这里表示 Unicode,就是双字节字符。对于西文字符,用一个字节来存储过足够了,对于东方文字字符,就需要两个字节来存储。Unicode 为了统一、规范、方便、兼容,就规定西文字符也用两个字节来存储。
也就是说加 N 就表示字符串用 Unicode 方式存储。
但有时候加与不加都一样,又是什么原因呢?这是由于自动转换造成的。
比如:
declare @status nvarchar(20)
select @status = N'stopped'
select @status = 'stopped'
实际上上述两句赋值的结果是一样的,因为变量类型就是 nvarchar(Unicode 类型)。
而有些地方(比如:sp_executesql 的参数)不能自动转换,所以需要加 N 了。
通用
SQL
语句
解析类
Sql
Parser(JAVA版)
项目中已使用的一个比较简单的
SQL
语句
查询
字段
解析工具类
SQL
SERVER如何判断某个
字段
包含大写字母
sql
语句
中默认是不区分大小写的,所以
语句
:
Sql
代码 SELECT * FROM RecEngineBizInfo WHERE RecEngineBizName = ‘QQ’ 和
Sql
代码 SELECT * FROM RecEngineBizInfo WHERE RecEngineBizName = ‘qq’ 查到的结果是一样的。 要查看某个
字段
是否包含大写字母 A 的脚本为:
Sql
代码 select * from RecEngineBizInfo where RecEngineBizName collate Chinese_PRC_CS_AS_WS like ‘%A%’ www.jb
my
sql
的
sql
语句
where,
SQL
之WHERE
语句
SQL
语句
是数据库查询
语句
,可以应用在各种数据库操作软件中,比如My
sql
,Oracle,因此
SQL
语句
学一套就基本可以通用了。这篇文章主要总结一下Where的用法,文章持续更新。一般的结构查询
语句
的结构如下:SELECT *FROM table_aWHERE x=y其中,以上
语句
的select,from,where是不区分大小写的,一般分行写select,from,where
语句
。select一...
【
sql
语句
】【where条件查询】:
字段
包含中文时无法返回结果的解决方法
【
sql
语句
】【where条件查询】:
字段
包含中文时无法返回结果的解决方法
Oracle中
sql
特殊
语句
where后面的
字段
后面加(+)
在编程过程当中,忽然看到有一段
SQL
语句
中where的
字段
后面跟着(+),以前没写过这样的
sql
语句
,于是起了好奇之心,想探究一下这个
语句
的作用是什么。 举一个例子,如
SQL
: select a.*,b.* FROM tmp_0813001 a,tmp_0813002 b where a.id=b.id(+) ; 这种
语句
的写法相当于
sql
语句
中的外连接,下面分析一下。 创建两张临时表,tmp_0813001 和 tmp_0813002,用于测试。 1.如果是在等号右...
C++ Builder
13,873
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章