问题描述
在 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字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!