如何在SQL中拆分值

时间:2014-10-22 05:24:04

标签: sql sql-server

我是第一次写sql脚本,我想分离一个包含两个用户ID的值,看起来像这样

612831408762037_617540318291146

我想把这两个分开,所以我有一个 user_id = 612831408762037和post_id = 617540318291146关于我如何解决这个问题的任何想法?

提前致谢

3 个答案:

答案 0 :(得分:1)

请尝试:

declare @var nvarchar(100)='612831408762037_617540318291146';

select 
    LEFT(@var, charindex('_',@var)-1), 
    RIGHT(@var, charindex('_',REVERSE(@var))-1)

答案 1 :(得分:0)

您可以为要显示的每个部分使用substr('value',start,length)。 substr函数从字符串或值中提取并返回特定的段。

  • 你可能也可以通过使用一个奇怪的concat语句来实现这一点。

答案 2 :(得分:0)

请试试这个。

DECLARE @document varchar(400);
DECLARE @FIRST int;

SELECT @document = '612831408762037_617540318291146234234234234';
SET @FIRST = (SELECT CHARINDEX('_', @document, 1));
SELECT rightSide = SUBSTRING(@document, 0,@FIRST), leftSide = SUBSTRING(@document, @FIRST+1, LEN(@document));