【发布时间】:2017-10-03 04:39:03
【问题描述】:
Table1 有一个名为 umsg 的 nvarchar 列,其中包含 unicode 文本和一些英文。
我想找出 umsg 列中存在的英文文本。
select *
from table1
where
RDate >='01/01/2014' and RDate < '09/26/2017'
and umsg = convert(varchar(max), umsg)
我使用的上述查询在区域语言中运行良好,但有时会失败。 假设 col 包含诸如“ref no été”之类的文本 我认为上面的消息是 unicode,如果我使用上面的查询,it/sql 显示为英文而不是 unicode。如何处理。
Table :
Id Date Umsg
1 2017-09-12 00:00:00.000 The livers detoxification processes.
2 2017-09-11 00:00:00.000 Purposely added 1
3 2017-09-10 00:00:00.000 फेंगशुई के छोटे-छोटे टिप्स से आप जीवन की विषमताओं से स्वयं को बचा सकते
4 2017-09-17 00:00:00.000 तनाव एक लाइलाज बीमारी कतई नहीं है। कुछ लोग तनाव को आसानी से झेल लेते ह
5 2017-09-17 00:00:00.000 ref no été
以上是我的表格中的数据。 但我想要像这样的数据/输出:
Id Date Umsg
1 2017-09-12 00:00:00.000 The livers detoxification processes.
2 2017-09-11 00:00:00.000 Purposely added 1
【问题讨论】:
-
@Jui 测试,在 where 条件下尝试使用 nvarchar 而不是 varchar。转换(nvarchar(最大),umsg)。
-
是的,我使用的是 sql server 2012
-
为什么使用 varchar 而不是 nvarchar
-
我不能使用nvarchar,如果我使用它也会给出所有unicode消息。我只想要英文消息。列已经是Nvarchar类型。再次将其转换为nvarchar,没有意义。
-
@Jui Test 如果字符串同时包含 unicode 和 ascii 字符,输出会是什么样子?
标签: sql sql-server sql-server-2012