首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >SQL在select中使用赋值

SQL在select中使用赋值
EN

Stack Overflow用户
提问于 2018-05-31 13:45:11
回答 2查看 35关注 0票数 2

我正在尝试将我的IP地址转换为一组3位数字,左边用0填充。我可以很容易地做到这一点:

DECLARE @merged VARCHAR(15);
SELECT @marged = COALESCE(@merged + '.', '') + RIGHT('000' + [value], 3)
FROM string_split(ip_address, '.');

但现在我想在更广泛的select语句中执行类似的操作。

SELECT Name, @merged AS IP_Address, Mac_Address
FROM some_table

但是,当我查询一个完整的表时,我不确定如何将@merged部分放在那里。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-31 13:50:03

Stack Overflow用户

发布于 2018-05-31 19:34:45

您的IP地址存在特定问题,因此可以使用parse_name()

SELECT Name, 
       (left('000' + parse_name(Mac_Address, 4), 3) + '.' +
        left('000' + parse_name(Mac_Address, 3), 3) + '.' +
        left('000' + parse_name(Mac_Address, 2), 3) + '.' +
        left('000' + parse_name(Mac_Address, 1), 3) 
       ) as ip_address,
      Mac_Address
FROM some_table;

如果其他解决方案使用字符串聚合,这将会更简单,性能也会更好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50617412

复制
相关文章

相似问题

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