有关表编码造成使用COLLATE database_default的问题

原创 2012年03月28日 14:01:22
因有两个表的编码不同,所以我在做关连时用如下语句(COLLATE database_default)可执行成功
select a.*
from dbo.Call_id as a , Call_Detail as b
where a.callid COLLATE database_default = b.callid COLLATE database_default
and calltime >= '2009-01-01' and calltime < '2009-02-01'

但现在写另一语句对以上call_id 和call_detail两个表进行union all
我写为如下但总提示出错
select a1,a2 from dbo.Call_id COLLATE database_default
union all
select a1,a2 from Call_Detail COLLATE database_default

请问上面这种union all要如何改呢? 谢谢!
SQL code

select a1,a2 COLLATE database_default from Call_id

union all

select a1,a2 COLLATE database_default from Call_Detail




SQL code



select a1,a2 COLLATE database_default from Call_id

union all

select a1,a2 COLLATE database_default from Call_Detail






引用 1 楼 jia_guijun 的回复:
SQL codeselect a1,a2 COLLATE database_default from Call_id
union all
select a1,a2 COLLATE database_default from Call_Detail

頂.


因有两个表的编码不同,所以我在做关连时用如下语句(COLLATE database_default)可执行成功
select a.*
from dbo.Call_id as a , Call_Detail as b
where a.callid COLLATE database_default = b.callid COLLATE database_default
and calltime >= '2009-01-01' and calltime < '2009-02-01'

但现在写另一语句对以上call_id 和call_detail两个表进行union all
我写为如下但总提示出错
select a1,a2 from dbo.Call_id COLLATE database_default
union all
select a1,a2 from Call_Detail COLLATE database_default

请问上面这种union all要如何改呢? 谢谢!
SQL code



select a1,a2 from dbo.Call_id

union all

select a1,a2 from Call_Detail






学习


一旦数据库建立如果不是用特别指定表里字段的COLLATATION是随数据库的,所以才叫DATABASE DEFAULT当跨库或不同collatation表时,必须每个字段改写,不能对表来改写因为表好像没有这个属性吧。


6楼说得对,我试过不能用表来conllatation

但对字段来改写要如何写呢? 谢谢!


搞定了,
field COLLATE database_default


自已搞定了,原来是

field COLLATE database_default

SQL之COLLATE 子句 排序规则

COLLATE 是一个子句,可应用于数据库定义或列定义以定义排序规则,或应用于字符串表达式以应用排序规则转换。语法COLLATE { | database_default } :: =      {...
  • akof1314
  • akof1314
  • 2009年11月03日 18:02
  • 8001

有关表编码造成使用COLLATE database_default的问题

因有两个表的编码不同,所以我在做关连时用如下语句(COLLATE database_default)可执行成功 select a.* from dbo.Call_id as a , Call_...
  • xiuhaijuanqiang
  • xiuhaijuanqiang
  • 2012年03月28日 14:01
  • 1704

CREATE DATABASE IF NOT EXISTS game DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

CREATE DATABASE IF NOT EXISTS game DEFAULT CHARSET utf8 COLLATE utf8_general_ci; -- -- Tabl...
  • meilinghu
  • meilinghu
  • 2016年10月26日 10:43
  • 1528

SQL Server 排序规则 COLLATE 修改

1.修改实例的排序规则:运行tools/binn 目录下的 rebuildm.exe,使用方法可点击帮助查看,在 2000下可以,其他版本未作测试。 2.修改数据库的排序规则:Alter DATABA...
  • zhnglicho
  • zhnglicho
  • 2010年11月08日 11:37
  • 1864

MySql COLLATE 的区别

Mysql collate规则:  *_bin: 表示的是binary case sensitive collation,也就是说是区分大小写的  *_cs: case sensitive c...
  • Kan_Auyeung
  • Kan_Auyeung
  • 2012年04月19日 09:06
  • 3030

SQL SERVER 消息 468,级别 16,状态 9

Cannot resolve the collation conflict between "Chinese_PRC_CI_AS" and "SQL_Latin1_General_CP1_CI_AS"...
  • ITX2000
  • ITX2000
  • 2013年12月19日 13:32
  • 1099

sp_msforeachdb

有时我们想在SQL服务器上的所有数据库上运行查询或一组查询。          已经有太多次,涉及到这样的需求了. sp_msforeachdb就是这个没有被记录的存储过程.(MSDN,以及别的官...
  • OrchidCat
  • OrchidCat
  • 2017年03月11日 17:16
  • 300

关于编码问题的深度解析

关于编码问题(乱码)的深度解析 编码问题的产生其实都是I/O操作导致的问题,也就是说所有I/O存在的地方就有可能会出现编码问题。 所以要想深度解析编码问题,我们就必须回到源码的实现机制,找到I/O操...
  • sundaysunshine
  • sundaysunshine
  • 2016年12月31日 12:35
  • 437

Mysql学习总结(19)——Mysql无法创建外键的原因

在MySQL中创建外键时,经常会遇到问题而失败,这是因为Mysql中还有很多细节需要我们去留意,我自己总结并查阅资料后列出了以下几种常见原因。 1.  两个字段的类型或者大小不严格匹配。例如,如果一...
  • u012562943
  • u012562943
  • 2016年06月22日 15:43
  • 4499

COLLATE函数与字符集排序规则的思考

COLLATE函数与字符集排序规则的思考 /****by selectleft(claro,2),in 西安,2009-03-24 14:21:34.250Microsoft SQLServer 20...
  • claro
  • claro
  • 2009年03月24日 14:21
  • 2405
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:有关表编码造成使用COLLATE database_default的问题
举报原因:
原因补充:

(最多只允许输入30个字)