见图。
我有一张桌子,上面写着与特定部门有关的记录。如果部门名称保存在“StandardWork”字段下但在“支持 - ”之后,那么创建名为Service的新列的SQL命令是什么,它将忽略单词support,空格和破折号,只需使用部门即可正确的?
答案 0 :(得分:2)
如果StandardWork
需要与Service
一起存在,则计算列
ALTER TABLE Whatever
ADD [Service] AS SUBSTRING(StandardWork, 11, 8000);
如果要替换StandardWork
,则:
ALTER TABLE Whatever
ADD [Service] varchar(200) NULL;
UPDATE Whatever SET [Service] = SUBSTRING(StandardWork, 11, 8000);
ALTER TABLE Whatever
ALTER COLUMN [Service] varchar(200) NOT NULL;
ALTER TABLE Whatever
DROP COLUMN StandardWork;
答案 1 :(得分:2)
我更喜欢使用STUFF
函数来解决这些问题。
select stuff(StandardWork, 1, 10, '')
此函数将删除字符1-10并将其替换为空字符串。
答案 2 :(得分:1)
您可以使用replace
select replace(StandardWork, 'Support - ', '')
或stuff如果您的部门名称中包含Support -
。
select stuff(StandardWork, 1, 10, '')
答案 3 :(得分:1)
在select语句中:
select ...
case when StandardWork like 'Support - %'
then replace(StandardWork, 'Support - ', '')
end SupportSubCategory
...