如何在 SQL 中执行 Split 和 Stringbuilding?
How to perform Split and Stringbuilding in SQL?
我是一名 SQL 助手,大部分时间都在使用 Powershell。因此,为此目的,我将这样表达自己。基本上,我有一列 FullName,其中包含 FirstName LastName
,我希望它在 SELECT
查询中重组为 LastName, Firstname
。
如果我不够清楚,在 Powershell 中我会这样做:
$string = "John Smith"
$split = $string.Split(' ')
$builder = "$($split[0]), $($split[1])"
如何在 SQL 中做到这一点?
Sql 服务器 2016。
https://msdn.microsoft.com/en-us/library/mt684588.aspx
DECLARE @tags NVARCHAR(400) = 'clothing,road,,touring,bike'
SELECT value
FROM STRING_SPLIT(@tags, ',')
WHERE RTRIM(value) <> '';
由于您的数据很好且一致,您可以结合使用 CHARINDEX
and SUBSTRING
函数:
SELECT
SUBSTRING(FullName, 0, CHARINDEX(' ', FullName)) AS FirstName,
SUBSTRING(FullName, CHARINDEX(' ', FullName)+1, LEN(FullName)) AS LastName
FROM NamesTable
现在,如果您想将它们重新连接在一起,只需使用一些字符串连接即可:
SELECT
SUBSTRING(FullName, CHARINDEX(' ', FullName)+1, LEN(FullName))
+ ', ' +
SUBSTRING(FullName, 0, CHARINDEX(' ', FullName))
FROM NamesTable
我是一名 SQL 助手,大部分时间都在使用 Powershell。因此,为此目的,我将这样表达自己。基本上,我有一列 FullName,其中包含 FirstName LastName
,我希望它在 SELECT
查询中重组为 LastName, Firstname
。
如果我不够清楚,在 Powershell 中我会这样做:
$string = "John Smith"
$split = $string.Split(' ')
$builder = "$($split[0]), $($split[1])"
如何在 SQL 中做到这一点?
Sql 服务器 2016。 https://msdn.microsoft.com/en-us/library/mt684588.aspx
DECLARE @tags NVARCHAR(400) = 'clothing,road,,touring,bike'
SELECT value
FROM STRING_SPLIT(@tags, ',')
WHERE RTRIM(value) <> '';
由于您的数据很好且一致,您可以结合使用 CHARINDEX
and SUBSTRING
函数:
SELECT
SUBSTRING(FullName, 0, CHARINDEX(' ', FullName)) AS FirstName,
SUBSTRING(FullName, CHARINDEX(' ', FullName)+1, LEN(FullName)) AS LastName
FROM NamesTable
现在,如果您想将它们重新连接在一起,只需使用一些字符串连接即可:
SELECT
SUBSTRING(FullName, CHARINDEX(' ', FullName)+1, LEN(FullName))
+ ', ' +
SUBSTRING(FullName, 0, CHARINDEX(' ', FullName))
FROM NamesTable