2016-07-28 5 views
0

Microsoft SQL Serverを使用していて、文字列値をチェックして置換するストアドプロシージャ内に条件を作成できるかどうか疑問でした。条件に基づいてストアドプロシージャ内で列の文字列値を変更します。

例えば何かのように:

if [column name] = 'Adam' 
then [column name] = 'BoB' 

はまた、この条件は、別のSelect Case

EQの内側にあることができれば:

SELECT 
    a.projectName, 
    a.user 
    CASE 
     WHEN a.TYPEID = 2 
      THEN 
       -- condition/change name 
       CONCAT(a.[MESSAGE], a.Name) 
FROM 
    some_table a 

答えて

0

case構築物は入れ子にすることができ、ここを参照してください:

SELECT 
    a.projectName, 
    a.user, 
    Case when a.TYPEID = 2 THEN 
     concat(a.[MESSAGE] , 
     Case a.Name when 'Adam' Then 'Bob' else a.Name end) 
    End msg 
From some_table a 

これは、あなたがメッセージに任意に変更名前をCONCATすることを想定しています。連結は、sql-serverの+演算子を使用して行うこともできます。

TYPEID != 2の場合は、あなたがしたいことはあなたの質問からはっきりしません。現在は何も出力されません(null)。

+0

TYPEID!= 2はここでは必要ありませんでした。 ここに入れ子にすると、私は思っています。ありがとうございます。 :) –

0

([列名]、 'アダム' を置き換え、 'Bob')が動作します。しかし、これは「アダムス」から「ボブス」にも変わるだろう。より具体的に作業したい場合は、より多くの作業を行う必要があります。

関連する問題