我使用SQL服务器并希望创建一个存储过程,如果它匹配某个值,它会更改数据的值,例如:
CREATE PROCEDURE [dbo].[usp_GetAnimals]
AS
SET NOCOUNT ON;
SELECT DISTINCT AnimalId,AnimalName,etc from [dbo].[Animals] order by AnimalName
我想要的是: 例如,如果我发现一只名叫狮子的动物改为狮子或其他名字?
if(AnimalName == 'lion'){
AnimalName = 'Lion Abc12'
}
类似的东西,但在存储过程中。 我可以用存储过程来完成吗? 顺便说一下,我无法直接在数据库中更改这些值,这就是为什么我会考虑这种方法,你会做什么?
我不想大写,而是将其改为另一种不同的方式 值
由于
答案 0 :(得分:1)
使用选择案例,或者如果有大量记录,请插入临时表并根据需要进行更新。
axis=-1
答案 1 :(得分:1)
这样的东西可以让你设置你想要适应的任何值
CREATE PROCEDURE [dbo].[usp_GetAnimals]
AS
SET NOCOUNT ON;
SELECT DISTINCT AnimalId,
case
when AnimalName='Lion' and pk=1 and fk=2 then 'Lion (Extra Large)'
when AnimalName='Lion' and pk=4 and fk=1 then 'Lioness'
when AnimalName='Lion' then 'Default Lion'
when AnimalName='Aardvark' then 'Aaaaardvark'
when AnimalName='Poacher' then 'Target'
else AnimalName end as AnimalName,
etc from [dbo].[Animals]
order by AnimalName
请注意,SQL Server比较不区分大小写(除非您强制执行此操作),因此 lion , Lion 和 LiON 都是相同的