我有下表:
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
正如您所看到的,列名已更改(从“名称”更改为“Desk_name”),如果每个值的末尾,“名称”列中的每个名称都有一个缩写“mm”(如果它是一个单词)阿里和jus)。
如何进行这样的存储过程(我使用的是sql server)?
由于
答案 0 :(得分: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
答案 1 :(得分:4)
试试这个:
在sql server
中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
答案 2 :(得分: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
答案 3 :(得分:0)
据我了解,您需要在更新表之前重命名列Desk_name。要做到这一点,你可以试试这个:
sp_RENAME 'YourTableName.Desk_name' , 'Name', 'COLUMN'
它应该重命名您的列。之后,您应该使用Joe或John的解决方案来更新表中的记录。