2011-08-08 1 views
0

結果セットでPHPを使ってこれを行う必要が生じるかもしれませんが、私はDBがこれを行うことができると考えていました。私はフィールドをチェックしたいと思って、それが条件に合っている場合は、別のフィールドを別のフィールド+文字列に等しく設定します。Selectで使用されたCASEのフィールドをプレーンテキストに連結しますか?

SELECT CASE UnityReq WHEN '1' THEN Table + ' (Unity)' ELSE Table END AS Type 

テーブルがイベントと等しい場合は、「イベント(Unity)」をタイプとして取得したいと考えています。

私は、文字列と組み合わせた場合、あなたのフィールドをキャストする必要が異なるポストで見たので、私はこの試みた:

SELECT CASE WHEN UnityReq = 1 THEN CAST(Table AS NVARCHAR(200)) + ' (Unity)' ELSE Table END AS Type 

をとMySQL CONCAT機能を試してみました:

SELECT CASE UnityReq WHEN 1 THEN CONCAT(Table, ' (Unity)') ELSE Table END AS Type 

私は」また、INTのフィールドのように数字の前後に引用符を付けてもしなくても試してみましたが、私はCASEでグーグルを見つけることができましたが、常にSQL構文エラーが出ています。私は私が思いつくことができるこのコマンドのすべてのバージョンを試したように感じるが、私は運がない。すべてのポインタ?

答えて

1

あなたが後になっているのではなく、結論です。

ような何か:働い

SELECT 
    CASE WHEN UnityReq = 1 THEN CONCAT(Table, ' (Unity)') ELSE Table END AS Type 
    FROM ... 
+0

奇妙な、。私はそれを前に試してみた(私の3回目の試みを見てください)が、明らかにCASE文の中で私のSQLや多分私の文法に間違ったことがありました。ありがとう! –

+0

CASE列のWHEN値またはCASE WHEN exprを使用できます。私はCASE構文とCAST/CONCATを十分に組み合わせていると思われます:-) – RET

関連する問題