Sql server 在SQL server中更新视图内的数据

Sql server 在SQL server中更新视图内的数据,sql-server,tsql,plsql,views,Sql Server,Tsql,Plsql,Views,我有一些数据如下所示 CREATE VIEW V_MyView AS SELECT event_id, req_uri FROM tableName; update req_uri set req_uri = '/v1/org' where req_uri like '/v1/org%' 如图所示,req_uri列的数据包含第二个斜杠后的ID。我只对uri的词干感兴趣,即第二个uri之前的部分 我如何创建一个视图,其中请求uri是updated,只包含'/v1/org'或'/v1/regis

我有一些数据如下所示

CREATE VIEW V_MyView
AS SELECT event_id, req_uri
FROM tableName;
update req_uri set req_uri = '/v1/org' where req_uri like '/v1/org%'
如图所示,req_uri列的数据包含第二个斜杠后的ID。我只对uri的词干感兴趣,即第二个uri之前的部分

我如何创建一个视图,其中请求uri是
update
d,只包含
'/v1/org'
'/v1/registration'

event_id                                req_uri
0007845f-cf6c-4513-9a5f-96d02482ef78    /v1/org/6970b2a5-e220-4d68-8fc0-2992a1b8bdb7
000a1fb0-ac4d-489e-866a-7c07caebb959    /v1/registration
000fe2a9-6d76-4045-93ac-9df68971539c    /v1/org/6970b2a5-e220-4d68-8fc0-2992a1b8bdb7
0017e50b-c7b5-4e42-b670-f2d9f0af752f    /v1/org/e536c1ed-4822-4b88-8c01-9f14c1c583e3/apps
0025a81f-cf81-4c60-8a39-3a626c1092a3    /v1/org/6970b2a5-e220-4d68-8fc0-2992a1b8bdb7
00304cef-87f3-426b-984c-b0b906b4815a    /v1/org/e536c1ed-4822-4b88-8c01-9f14c1c583e3/apps
我知道如何创建视图,如下所示

CREATE VIEW V_MyView
AS SELECT event_id, req_uri
FROM tableName;
update req_uri set req_uri = '/v1/org' where req_uri like '/v1/org%'
我也知道如何修剪它如下

CREATE VIEW V_MyView
AS SELECT event_id, req_uri
FROM tableName;
update req_uri set req_uri = '/v1/org' where req_uri like '/v1/org%'

但是,如何在视图中组合这些内容,使其包含修剪过的数据?

我不确定是否100%地理解了您的问题,但我想您是在问如何创建一个视图,该视图具有经过修改的
req\u uri
硬编码操作,因此类似这样的内容是您想要的:

CREATE VIEW V_MyView
AS 
SELECT event_id, 
    CASE WHEN req_uri LIKE '/v1/org%' THEN '/v1/org'
      WHEN req_uri LIKE '/v1/registration%' THEN '/v1/registration' 
      ELSE NULL END as [req_uri]
FROM tableName;

您可以做一些类似于
子字符串(req_uri,1,ISNULL)(NULLIF(CHARINDEX('/',req_uri,CHARINDEX('/',req_uri,CHARINDEX('/',req_uri)+1)+0)-1,LEN(req_uri))
的事情,它们总是会得到req_uri的前两部分。e、 例如“/v1/org”或“/a/b”等(假设您的请求uri总是以“/”开头,并且您总是想要前两个)。