4

私は以下の表を持っています:

Desk_name | head
ali       | john 
cars ln   | max
pol fr    | max
jus       | john

見返りを得るためにストアドプロシージャを作成したい:

Name      | sector_head
ali mm    | john
cars ln   | max
pol fr    | max
jus mm    | john

ご覧のとおり、列名が ('Name' から 'Desk_name' に) 変更され、'Name' 列のすべての名前は、単一の単語 (ali と jus )。

このようなストアド プロシージャを実行するにはどうすればよいですか (SQL サーバーを使用しています)。

ありがとう

4

4 に答える 4

4

これを試して:

SQLサーバーで

select case when charindex(' ',ltrim(rtrim(Desk_name)))=0 
            then Desk_name+' mm' 
            else Desk_name 
       end  as Name ,
       head as sector_head
from your_table 


SQL フィドルのデモ

于 2012-10-03T07:48:08.630 に答える
4

あなたはそれに供給する必要がありますALIAS、例

SELECT CASE WHEN LTRIM(RTRIM(Desk_name)) LIKE '% %'  -- finds any space in string
            THEN Desk_name 
            ELSE Desk_name + ' mm'
       END AS Name, 
       head AS sector_head 
FROM   tableName

SQLFiddle デモ

于 2012-10-03T07:37:14.627 に答える
0

私が理解しているように、テーブルを更新する前に列 Desk_name の名前を変更する必要があります。これを行うには、これを試すことができます:

sp_RENAME 'YourTableName.Desk_name' , 'Name', 'COLUMN'

列の名前を変更する必要があります。その後、Joe または John のソリューションを使用して、テーブル内のレコードを更新する必要があります。

于 2012-10-03T08:09:55.380 に答える
0
SELECT CASE WHEN Desk_name = 'ali' OR Desk_name = 'jus'  THEN Desk_name + ' mm' ELSE Desk_name END AS Name, 
head AS sector_head
FROM DeskName 
于 2012-10-03T07:50:11.063 に答える