我必須運行一個查詢,其中一些資料來自 SQL Server 資料庫,一些來自 MySQL 資料庫。我設法實作了它,但是在 MySQL 資料庫中使用引數時出現了問題。
這里有錯誤的查詢:
select sp.SLC_ID, a.ASS_NAM, p.PCE_NAM, p.PCE_DES, pr.PRF_NAM,
(
SELECT top 1 t2.CleTri
FROM (
SELECT CAST(t1.CLETRI as varchar) CleTri, CAST(t1.LIBELLE as varchar) Libelle
FROM OPENQUERY("PLMStock",'SELECT CLETRI, LIBELLE FROM produits') t1
) t2
WHERE t2.Libelle LIKE pr.PRF_NAM '%'
) as CLETRI
from SELECT_PART sp
left join PART p on p.PCE_ID = sp.PCE_ID
left join ASSEMBLY a on a.ASS_ID = sp.ASS_ID
left join PROFILE pr on pr.PRF_ID = p.PRF_ID
where sp.SLC_ID = 2930 and p.PRD_ID is null
運行此查詢時,我收到該錯誤:
訊息 468,級別 16,狀態 9,第 9 行無法解決類似操作中“French_CI_AS”和“Latin1_General_CI_AS”之間的排序規則沖突。
但是當我對 like 引數進行硬編碼時,它作業正常。
有人可以幫我嗎?
uj5u.com熱心網友回復:
LIKE 比較受排序規則的影響。
https://docs.microsoft.com/en-us/sql/t-sql/statements/collat??ions?view=sql-server-ver15
WHERE t2.Libelle COLLATE database_default LIKE pr.PRF_NAM '%'
uj5u.com熱心網友回復:
該錯誤表明兩列之間的排序規則不同,您需要轉換其中之一以匹配。
以下對您有用嗎?
WHERE t2.Libelle LIKE pr.PRF_NAM '%' COLLATE French_CI_AS
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/353654.html
標籤:mysql sql-server 参数
