sql-server - 通过分隔冒号将单列拆分为两列
问题描述
我希望通过将一列之间有冒号的列拆分为两个单独的列来输出。一个条件是,如果没有冒号,则该值应该在第二个新列中
SingleColumn
------------
TYPE: HIGH POWER/MAGNETIC
LAMPTYPE: FLUORESCENT
BALLAST STYLE
NewColumn1 NewColumn2
---------- ----------
Type HIGH POWER/MAGNETIC
LAMPTYPE FLUORESCENT
BALLAST STYLE
解决方案
也许使用子字符串函数来提取你想要的部分:
select
iif(
charindex(':', SingleColumn) > 0,
left(SingleColumn, charindex(':', SingleColumn) - 1),
null
) as NewColumn1,
iif(
charindex(':', SingleColumn) > 0,
right(SingleColumn, len(SingleColumn) - charindex(':', SingleColumn)),
SingleColumn
) as NewColumn2
from my_table
如果字符串不包含分隔符,则第二列获取整个值。
推荐阅读
- powershell - 如何在 Azure DevOps 中获取所有存储库
- arrays - 如果应该只返回一个布尔值,过滤器如何知道条件是什么?
- asp.net-mvc - AllowHTML 不允许传递 html 的问题
- r - R 显示来自矩阵/数据框的数据,但不显示列名或行名
- php - 无法使用 Homebrew 在 MacOS Catalina 上安装 PHP 5.6
- google-apps-script - 如何使用 GAS 使 Google 表单不受限制?
- botframework - 我的组织已经阻止了 ngrok,有没有其他方法可以在本地没有 ngrok 的情况下将机器人模拟器与团队频道连接起来?
- php - PHP 显示一系列日期,不包括给定的假期和休息日
- php - 在 woocommerce wordpress 产品页面上格式化产品和变体 SKU
- php - 如何单击带有 url 的复选框?