當我想在我的字符串替換阿塞拜疆字符「S」「sh'.it的作品,但它也取代了‘S’與‘上海’替換字符串的字符阿塞拜疆不正確的工作
我該如何解決它。任何想法?
REPLACE(mystring,'ş','sh')
當我想在我的字符串替換阿塞拜疆字符「S」「sh'.it的作品,但它也取代了‘S’與‘上海’替換字符串的字符阿塞拜疆不正確的工作
我該如何解決它。任何想法?
REPLACE(mystring,'ş','sh')
這個字符表示爲Unicode
http://en.wikipedia.org/wiki/%C5%9E
使用此文章,爲您解決問題
how to insert unicode text to SQL Server from query window
問候 [R
請閱讀問題please.do不回答只爲獲得成績。 – RASKOLNIKOV 2015-03-19 06:49:17
的C haracter「ş」屬於Turkish_CI_AS。將它們插入數據庫並將它們撤回也是一個問題。訣竅是使用nvarchar並在插入和查詢時使用N.
請參考下面的例子。
SELECT REPLACE(N'arshad khan earns 1000ş',N'ş','sh');
SELECT 'ş'
SELECT N'ş'
輸出是如下
艾爾沙德汗賺取1000sh
小號
ş
這是您的查詢 「arshhad汗earnsh 1000sh」的結果。它取代的「還與「上海」。我列類型爲nvarchar沒有必要把N的頭。所以問題不是把ñ – RASKOLNIKOV 2015-03-19 06:55:08
你是什麼數據庫歸類? – RASKOLNIKOV 2015-03-19 06:59:03
但在我的SQL服務器2012年,其工作和輸出如上 – 2015-03-19 06:59:24
研究後唯一解決方案。
它發生在兩個字符「S」和「C」,如果你想將這些字符替換其他東西它也將取代「s」和「C」。
當然,如果你的數據庫歸類爲「Turkish_CI_AS」,它會工作。但在我的情況下,只有兩個角色我不能改變它我的數據庫collation.No邏輯。
所以我的客戶只是想從我改變里人字符拉丁語「S」 - >「S」。
我的解決方案,當我開始時,我用特殊字符替換's',並在將所有azeri字符替換爲latin.so後將其放回,因此替換後我的原始'c'和's'字符不受影響。
這是我寫的
功能Create FUNCTION [dbo].[funRGMReplaceAzeriCharacters]
(
@string nvarchar (MAX)
)
RETURNS varchar(MAX)
AS
BEGIN
DECLARE
@Result nvarchar(MAX)
Begin
SET @Result=REPLACE(@string,'s' ,'V1986Q')
SET @Result=REPLACE(@Result,'c' ,'V1987Q')
SET @Result=REPLACE(@Result,'ı' ,'i')
SET @Result=REPLACE(@Result,'ə','a')
SET @Result=REPLACE(@Result,'ğ','g')
SET @Result=REPLACE(@Result,'ü','u')
SET @Result=REPLACE(@Result,'ş','sh')
SET @Result=REPLACE(@Result,'ç','ch')
Set @Result=REPLACE(@Result,'ö','o')
-- bring back s and c
Set @Result=REPLACE(@Result,'V1986Q','s')
Set @Result=REPLACE(@Result,'V1987Q','c')
END
RETURN UPPER (@Result)
END
http://stackoverflow.com/questions/22409462/compare-st-with-%C5%9F-%C5%A3-in-sql-server – sqluser 2015-03-19 06:27:35
它不是答案。不同的問題。請閱讀問題 – RASKOLNIKOV 2015-03-19 06:45:53