1

次のクエリを実行しようとしました

SELECT  Scania.GensetType, Scania.EngineType, Scania.Engine60Hz, Scania.Alternator, Scania.PriceEur
FROM Scania  
LEFT JOIN NordhavnGenset
    ON Scania.GensetType=NordhavnGenset.Alternator 
LEFT JOIN Generator
    ON Scania.Alternator=Generator.Alternator
LEFT JOIN Insulation 
    ON NordhavnGenset.Insulation=Insulation.Insulation
LEFT JOIN Klasse
    ON NordhavnGenset.Class=Klasse.Class
LEFT JOIN AirInletFilter
    ON NordhavnGenset.AirInletFilter=AirInletFilter.AirInletFilter
LEFT JOIN IP
    ON NordhavnGenset.Ip=IP.IP
WHERE (NordhavnGenset.MaxKva='46') and (Generator.Alternator='ECP34-1LN/4') and (Insulation.Insulation='F (90ºC/45ºC)') and (Klasse.Klasse='KRS\r') and (AirInletFilter.AirInletFilter='No') and (IP.IP='IP23');

しかし、それは

Scania.Alternator=Generator.Alternator

それぞれテキスト UTF 16 とテキスト UTF8 のデータ型を持ちます。その結果、実行できません。この変換を行うために使用する必要がある構文を知る必要があります

これは、クエリの実行時に表示されるエラー メッセージです。

#1267 - Illegal mix of collations (utf16_unicode_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='
4

1 に答える 1

2

このCONVERT(.. USING ..)関数を使用して、値をある文字エンコードから別の文字エンコードに変換できます。

Scania.Alternator = CONVERT(Generator.Alternator USING ucs2)

または、列のエンコーディングが異なる理由を調べて、すべてにutf8またはucs2のいずれかを使用することを検討することもできます...

于 2012-06-19T19:58:54.260 に答える