-3

见图片。

我有一张表,里面全是与特定部门有关的记录。如果部门名称在“StandardWork”字段下,但在“Support -”一词之后,创建一个名为 Service 的新列的 SQL 命令是什么,它将忽略支持一词、空格和破折号,只使用部门来正确的?

在此处输入图像描述

4

4 回答 4

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;
于 2011-11-23T11:39:55.827 回答
2

我更喜欢使用该STUFF功能来解决这些问题。

    select stuff(StandardWork, 1, 10, '')

此函数将删除字符 1-10 并用空字符串替换它们。

于 2011-11-23T11:42:45.427 回答
1

您可以使用替换

select replace(StandardWork, 'Support - ', '')

或者如果您有部门Support -名称中包含的部分。

select stuff(StandardWork, 1, 10, '')
于 2011-11-23T11:39:05.673 回答
1

在 select 语句中:

select ...
       case when StandardWork like 'Support - %' 
            then replace(StandardWork, 'Support - ', '')
       end SupportSubCategory
       ...
于 2011-11-23T11:43:35.580 回答