2016-10-28 82 views
2

dev 2008では動作しますが、テスト2014では機能しないクエリがあります。 requiremntsの表示により正確な形式で返されるクエリが必要ですが、それを変換する方法を知らない。私はキャストと変換を試みた。オペランドデータ型のイメージは、SQL Serverのmax演算子では無効です。2014

私はクエリを実行すると、私は2014年に取得したエラーメッセージは、最大演算子には無効である3 オペランドのデータ型の画像メッセージ8117、レベル16、状態1、行

です。ここで

はクエリです:

SELECT Max(CASE 
      WHEN rn % 3 = 0 THEN itemtransactionbatchid 
      END) AS ItemTransactionBatchId, 
     Max(CASE 
      WHEN rn % 3 = 0 THEN referencebytes 
      END) AS ReferenceBytes, 
     Max(CASE 
      WHEN rn % 3 = 0 THEN description 
      END) AS Description, 
     Max(CASE 
      WHEN rn % 3 = 1 THEN itemtransactionbatchid 
      END) AS ItemTransactionBatchId1, 
     Max(CASE 
      WHEN rn % 3 = 1 THEN referencebytes 
      END) AS ReferenceBytes1, 
     Max(CASE 
      WHEN rn % 3 = 1 THEN description 
      END) AS Description1, 
     Max(CASE 
      WHEN rn % 3 = 2 THEN itemtransactionbatchid 
      END) AS ItemTransactionBatchId2, 
     Max(CASE 
      WHEN rn % 3 = 2 THEN referencebytes 
      END) AS ReferenceBytes2, 
     Max(CASE 
      WHEN rn % 3 = 2 THEN description 
      END) AS Description2 
FROM (SELECT a.itemtransactionbatchid, 
       a.referencebytes, 
       b.description, 
       (ROW_NUMBER() 
        OVER(
        ORDER BY CASE WHEN b.code='SIGOPRT' THEN 1 WHEN b.code='SIGDRVR' THEN 2 WHEN b.code='SIGTRANS' THEN 3 WHEN b.code='SIGRECV' THEN 4 WHEN b.code='SIGN' THEN 5 WHEN b.code='SIGSUPR' THEN 6 ELSE 0 END, b.code, (SELECT NULL)) - 1) rn 
     FROM [Transaction].itemtransactionref a (NOLOCK) 
       JOIN [Transaction].transactionreftype b 
       ON a.transactionreftypeid = b.transactionreftypeid 
     WHERE b.code IN('SIGDRVR', 'SIGN', 'SIGOPRT', 'SIGRECV', 
         'SIGSUPR', 'SIGTRANS') 
       AND a.itemtransactionbatchid = xxxxxxx 
       AND referencebytes IS NOT NULL)x 
GROUP BY rn/3 
+2

'IMAGE'データ型は、あなたができるだけ早く' VARBINARY(MAX) 'データ型に移動する必要があるSQL Serverの2014年で廃止予定のデータ型です。詳細については、[ntext、text、およびimage(Transact-SQL)](https://msdn.microsoft.com/nl-be/library/ms187993.aspx)を参照してください。 –

+0

これは私の問題を解決していただきありがとうございます。どのように答えを受け入れるのですか? – Rjoy

答えて

0

変更VARBINARY(MAX)に画像列のデータ型。そのタイプのMAXがサポートされています。


これは、すべてのエラーを与えるものではありません:

CREATE TABLE #t(entr VARBINARY(MAX)); 

SELECT MAX(entr) FROM #t; 
関連する問題