本文介绍了在sql server中转换为ASCII字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在 Oracle 中,我可以使用以下方法将 ÄÊÍABCDE 转换为 AEIABCDE:

In Oracle I can convert ÄÊÍABCDE to AEIABCDE using:

SELECT CONVERT('ÄÊÍABCDE', 'US7ASCII') from dual;

输出:

AEIABCDE

如何在 SQL Server 中执行相同的操作?

How can I do the same in SQL Server?

推荐答案

你可以试试下面的查询:

you can try following query:

 SELECT CAST('ÄÊÍABCDE' AS varchar(100)) COLLATE SQL_Latin1_General_CP1253_CI_AI

警告:

这不支持 UNICODE 字符串,所以不要用 nvarchar

This does not support UNICODE strings so do not replace varchar with nvarchar

演示 sql 小提琴:http://sqlfiddle.com/#!6/9eecb7/2016

demo sql fiddle: http://sqlfiddle.com/#!6/9eecb7/2016

说明:

在此处阅读 MSDN 上的校对信息:https://msdn.microsoft.com/en-us/library/ms184391.aspx

Read about collate on MSDN here:https://msdn.microsoft.com/en-us/library/ms184391.aspx

关于评论

if 'ÄÊÍABCDE' = CAST('ÄÊÍABCDE' AS varchar(100)) COLLATESQL_Latin1_General_CP1253_CI_AI 打印相同",否则打印不相同"打印相同.为什么??

WHERE 条件中强制进行排序,该条件对比较的双方进行排序.如果您需要 not same 结果,请尝试以下

Collation is forced in the WHERE condition which collates both side of comparison. If you need not same as result, try below

declare @t varchar
set @t= CAST('ÄÊÍABCDE' AS varchar(100))
COLLATE SQL_Latin1_General_CP1253_CI_AI
select
case
when 'ÄÊÍABCDE' like  @t
then 'same' else  'not same' end as result

演示链接:http://sqlfiddle.com/#!6/9eecb7/2022

这篇关于在sql server中转换为ASCII字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!