1

SQLServerCEはCOALESCE私のコラムが気に入らないようです。

クエリにが含まれている場合、クエリは次COALESCE(ep.value, '') as idのように失敗します

パラメータが無効です

case ep.value when null then '' else ep.value end)を使用してみましたが、他のエラーNTEXTなどが発生します。

nullをnull以外の何かに変換する別の方法を知っている人はいますか?

アップデート:

完全なクエリはかなり複雑で、説明するのに長い時間がかかりますが、ここでは好奇心旺盛な人のためのものです。

    SELECT COALESCE(ep.value, '') as domainId , [p].[id], [p].[firstName], [p].[middleName], [p].[lastName], [p].[isDeleted], ...    
FROM Patient p 

INNER JOIN PatientOrganisation po on p.id = po.patientFk  

left join extendedproperty ep on ep.entityId = p.id 

left join (select sgu.id, sgu.unitFk 
           from StaffGroupUnit sgu 
           where sgu.staffGroupFk = '3d364f5b-b5ff-456a-bf33-d8b48bf195b2' and sgu.isDeleted = 0) as bat on bat.unitFk = po.unitFk 

where p.isDeleted = 0 and po.isDeleted = 0  AND 
      COALESCE(ep.metadatafk,'55b009d5-cead-4b62-ad04-526b57a02ed2')='55b009d5-cead-4b62-ad04-526b57a02ed2' and 
      COALESCE(ep.isdeleted,0)=0  AND 
      (not exists(select 1 from staffgroupunit sgu where sgu.staffGroupFk = '3d364f5b-b5ff-456a-bf33-d8b48bf195b2' and sgu.isDeleted=0) OR bat.id IS NOT NULL)  
order by p.lastName, p.firstName 

はい、私はこのクエリが恐ろしいことを知っています、そして私は実際にそれのいくつかの部分を削除することによって問題を修正しました。本当に興味深いのは、このクエリがほとんど機能することです。'パラメータが無効です'で失敗した場合、VisualStudioまたはManagementStudioを使用してまったく同じクエリを実行でき、問題なく動作します。

当社の製品の1つがWindowsMo​​bileであるため、CE3.5を使用しています。これは、アップグレードで修正されるCEの単なるバグだと思います。

乾杯

4

1 に答える 1

1
于 2012-07-24T03:37:37.257 に答える