0

caseステートメントで2つのフィールドを連結しようとしています。ここでは、2番目のフィールドに右から10文字だけが必要です。最初のフィールドは25文字のvarcharフィールド(twfcompID)です。2番目のフィールドはテキストフィールド(t.TransNotes)です。497-2059--281369.pdfのようなものになりたいです。これが機能していない私の構文です。

(Case
    WHEN l.TWFCompID = 'FCLMIL' THEN    
        CAST(m.MatterID AS VARCHAR(100)) + '--' + 
        RIGHT(CAST(t.TransNotes,10) AS VARCHAR(100))
    WHEN l.TWFCompID like 'f-%' THEN
        CAST(m.MatterID AS VARCHAR(100)) + '--' + (right(t.TransNotes,10) AS VARCHAR(100)) 
    WHEN l.TWFCompID like 'FS-%' THEN
        CAST(m.MatterID AS VARCHAR(100)) + '--' + CAST(right(t.TransNotes,10) AS VARCHAR(100)) 
ELSE '' END) AS 'LineItemID', 

これを実行すると、エラーが発生します:メッセージ1035、レベル15、状態10、行5「CAST」の近くの構文が正しくありません。「AS」が必要です。

4

1 に答える 1

0

問題は最初のWHEN節にあるようです。RIGHTとのパラメータCASTが混同されています。これを試して。

WHEN l.TWFCompID = 'FCLMIL' THEN    
    CAST(m.MatterID AS VARCHAR(100)) + '--' + 
    CAST(RIGHT(t.TransNotes, 10) AS VARCHAR(100))

CAST別の方法として、次のステートメントを使用してandRIGHTステートメントを切り替えることもできます。

WHEN l.TWFCompID = 'FCLMIL' THEN    
    CAST(m.MatterID AS VARCHAR(100)) + '--' + 
    RIGHT(CAST(t.TransNotes AS VARCHAR(100)), 10)

2 番目の句のCASTキーワードが欠落している可能性もあります。WHEN

于 2013-01-31T01:22:51.227 に答える