首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从一列中添加一些文本到新列中?

从一列中添加一些文本到新列中?
EN

Stack Overflow用户
提问于 2017-01-17 19:47:40
回答 4查看 67关注 0票数 1

是否可以仅使用SQL查询将IP地址从"Connectionstring“列添加到"IP_Adress”列?无论IP地址的长度如何,查询都应对所有行执行此操作。

EN

回答 4

Stack Overflow用户

发布于 2017-01-17 19:56:21

你可以像下面这样:

代码语言:javascript
复制
DECLARE @Tmp VARCHAR(50) = 'Data Source=10.16.190.2;Initial Catalog'
SELECT REPLACE(LEFT(@Tmp, CHARINDEX(';Initial', @Tmp, 0) - 1), 'Data Source=', '') -- 10.16.190.2

用法:

代码语言:javascript
复制
UPDATE Laeger
SET IP_Adresse = REPLACE(LEFT(Connectionstring, CHARINDEX(';Initial', Connectionstring, 0) - 1), 'Data Source=', '')
票数 1
EN

Stack Overflow用户

发布于 2017-01-17 19:55:26

这样的东西应该可以为您做这项工作

代码语言:javascript
复制
UPDATE *TABLENAME*
   SET IP_ADDRESS = SUBSTRING(CONNECTRIONSTRING, 13, (CHARINDEX(CONNECTRIONSTRIONG, ';', 13) - 13)
票数 0
EN

Stack Overflow用户

发布于 2017-01-17 19:55:48

如果DataSource部件始终位于开头。然后,您可以通过组合使用SUBSTRINGCHARINDEX来实现这一点。

查询

代码语言:javascript
复制
UPDATE [your_table_name]
SET [IP_Address] = SUBSTRING(
                   [connectionstring], 
                   CHARINDEX('=', [connectionstring], 1) + 1, 
                   CHARINDEX(';', [connectionstring], 1) - 
                      CHARINDEX('=', [connectionstring], 1) - 1);

否则

您可以组合使用PATINDEXRIGHTLEFTCHARINDEX

据我所知,DataSource部件可以在连接字符串中的任何位置。

因此,使用PATINDEX从整个字符串中找到单词DataSource=的位置,根据该位置执行相应的函数。

查询

代码语言:javascript
复制
SELECT 
REPLACE((
LEFT(
RIGHT([connectionstring], LEN([connectionstring]) - 
                 PATINDEX('%Data Source=%', [connectionstring]) + 1),
             CHARINDEX(';', 
             RIGHT([connectionstring], LEN([connectionstring]) - 
             PATINDEX('%Data Source=%', [connectionstring]) + 1)) - 1)), 
      'Data Source=', '') AS [IP_Adress]
FROM [your_table_name];

如果你想更新,

代码语言:javascript
复制
UPDATE [your_table_name]
SET [IP_Address] = REPLACE((
LEFT(
RIGHT([connectionstring], LEN([connectionstring]) - 
      PATINDEX('%Data Source=%', connectionstring) + 1),
CHARINDEX(';', 
 RIGHT([connectionstring], LEN([connectionstring]) - 
       PATINDEX('%Data Source=%', [connectionstring]) + 1)) - 1)), 
      'Data Source=', '');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41696329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档