sql server中varchar型处理

-Tracy-McGrady- 2012-09-07 03:11:35
表结构:
有两个表:A(ysdzt,zt) B(ysdzt),其中ysdzt是varchar(60) zt是int,且A中数据明显多于B中
需求:
现我要更改A中zt字段,条件是ysdzt是B中的。
我用的语句是:

update A set zt=8 where ysdbh in(select ysdbh from B with(nolock))

出现的问题大概是这样的
无法解决 equal to 运算中 "Chinese_PRC_CI_AS" 和 "Chinese_PRC_CS_AI" 之间的排序规则冲突。

好像int型数据才可以那样,小弟不知道varchar以及nvarchar要怎么比较 in ,not in ,= 望大牛们帮忙。
...全文
131 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
-Tracy-McGrady- 2012-09-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

那试试这个:
SQL code
update A
set zt = 8
from b
where ysdzt COLLATE Chinese_PRC_CI_AS= B.ysdzt COLLATE Chinese_PRC_CI_AS
[/Quote]

这个估计有用,不过我已经结贴了么,分不能给你加了,谢谢你了。
shoppo0505 2012-09-07
  • 打赏
  • 举报
回复
那试试这个:
update A
set zt = 8
from b
where ysdzt COLLATE Chinese_PRC_CI_AS= B.ysdzt COLLATE Chinese_PRC_CI_AS
-Tracy-McGrady- 2012-09-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

SQL code
update A set zt=8 where ysdbh in(select ysdbh from B with(nolock) COLLATE Chinese_PRC_CI_AS)

排序规则的问题
[/Quote]

这个也不行
-Tracy-McGrady- 2012-09-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

SQL code

update A
set zt = 8
from b
where ysdzt = B.ysdzt
[/Quote]
如果直接执行的话,提示“ysdbh不明确”。
如果修改为以下的话,

update A
set zt = 8
from A,B
where A.ysdzt = B.ysdzt

则又出现老问题“无法解决 equal to 运算中 "Chinese_PRC_CI_AS" 和 "Chinese_PRC_CS_AI" 之间的排序规则冲突”了。
shoppo0505 2012-09-07
  • 打赏
  • 举报
回复

update A
set zt = 8
from b
where ysdzt = B.ysdzt
  • 打赏
  • 举报
回复

-->try
update A set zt=8 where ysdbh COLLATE Chinese_PRC_CI_AS in(select ysdbh from B with(nolock))
--or
update A set zt=8 where ysdbh COLLATE Chinese_PRC_CI_AI in(select ysdbh from B with(nolock))
發糞塗牆 2012-09-07
  • 打赏
  • 举报
回复
update A set zt=8 where ysdbh in(select ysdbh from B with(nolock) COLLATE  Chinese_PRC_CI_AS)

排序规则的问题
-Tracy-McGrady- 2012-09-07
  • 打赏
  • 举报
回复
还有就是怎么判断连个字符型数据相等,比如ysdbh1为'1,2,3,4,5'ysdbh2为'1,3,2,4,5'ysdbh3为'1,2,3,4,5'怎么样才能判断ysdbh1与ysdbh3相等,但ysdbh1和ysdbh2,ysdbh2和ysdbh3不相等呢?

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧