将SQL中的字符串分隔成两个部分(用连字符分隔) - 并将这两个部分存储在另一个变量中

时间:2017-01-19 14:48:23

标签: sql database

我需要在SQL中分隔一个字符串,

实施例,

a='001A01-001A05'

我在OUTPUT中需要的是,

x='001A01'
y='001A05'

3 个答案:

答案 0 :(得分:3)

使用LEFTCHARINDEXSUBSTRING

DECLARE @char VARCHAR(500)= '001A01-001A05'

SELECT LEFT(@char, Charindex('-', @char) - 1),
       Substring(@char, Charindex('-', @char) + 1, Len(@char)) 

答案 1 :(得分:2)

Prdp的答案将是我的第一选择,但如果SQL Server 2012+,另一个选项是PARSENAME()

Declare @a varchar(25)='001A01-001A05'
Select x=ParseName(Replace(@a,'-','.'),2)
      ,y=ParseName(Replace(@a,'-','.'),1)

返回

x       y
001A01  001A05

答案 2 :(得分:1)

使用LEFTRIGHT

尝试此操作
DECLARE @str varchar(max)= '001A01-001A05'
select left(@str, charindex('-', @str)-1), 
       right(@str, charindex('-', @str)-1)