Pra*_*een 6 t-sql sql-server sql-server-2012
在Oracle中我可以转换ÄÊÍABCDE为AEIABCDE使用:
SELECT CONVERT('ÄÊÍABCDE', 'US7ASCII') from dual;
Run Code Online (Sandbox Code Playgroud)
输出:
AEIABCDE
Run Code Online (Sandbox Code Playgroud)
我怎样才能在SQL Server中做同样的事情?
你可以尝试以下查询:
SELECT CAST('ÄÊÍABCDE' AS varchar(100)) COLLATE SQL_Latin1_General_CP1253_CI_AI
Run Code Online (Sandbox Code Playgroud)
警告:
这不支持Unicode字符串,所以不要更换varchar与nvarchar
demo sql fiddle:http://sqlfiddle.com/#!6/9eecb7/ 2016
说明:
在MSDN上阅读有关collate的信息: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