在sql server中转换为ASCII char

Pra*_*een 6 t-sql sql-server sql-server-2012

在Oracle中我可以转换ÄÊÍABCDEAEIABCDE使用:

SELECT CONVERT('ÄÊÍABCDE', 'US7ASCII') from dual;
Run Code Online (Sandbox Code Playgroud)

输出:

AEIABCDE
Run Code Online (Sandbox Code Playgroud)

我怎样才能在SQL Server中做同样的事情?

Dhr*_*shi 6

你可以尝试以下查询:

 SELECT CAST('ÄÊÍABCDE' AS varchar(100)) COLLATE SQL_Latin1_General_CP1253_CI_AI
Run Code Online (Sandbox Code Playgroud)

警告:

这不支持Unicode字符串,所以不要更换varcharnvarchar

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

说明:

在MSDN上阅读有关collat​​e的信息:https: //msdn.microsoft.com/en-us/library/ms184391.aspx

编辑:

评论

如果'ÄÊÍABCDE'= CAST('ÄÊÍABCDE'ASvarchar(100))COLLATE SQL_Latin1_General_CP1253_CI_AI打印'相同'其他打印'不相同'打印相同.为什么??

WHERE整理比较两侧的条件下强制整理.如果您需要not same结果,请尝试以下

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
Run Code Online (Sandbox Code Playgroud)

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