2014-10-22 64 views
0

我很書面方式SQL腳本首次拆分值,我想單獨一個包含兩個用戶的ID,看起來像這樣如何在SQL

612831408762037_617540318291146 

的值,我想這兩個分開,所以我有一個 user_id = 612831408762037和post_id = 617540318291146關於我如何接受這個的任何想法?

在此先感謝

+0

檢查:http://stackoverflow.com/questions/2696884/mysql-split-value-from-one-field-to-two – Amar 2014-10-22 05:27:42

+0

@ user3659384,請接受這工作了你答案,它對於提到這個問題的其他人來說很容易。 – rinuthomaz 2014-10-23 05:03:38

回答

1

請嘗試:

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

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

非常感謝,解決了我的問題 – user3659384 2014-10-22 05:48:22

+0

它是否適用於此輸入612831408762037_617540318291146234234234234? – rinuthomaz 2014-10-22 10:22:15

+0

@rinuthomaz是的...它不會工作!我已經更新了答案。 – TechDo 2014-10-22 11:05:20

0

你可以使用SUBSTR(「價值」,開始,長度)爲您要顯示的每個部分。 substr函數從字符串或值中提取並返回特定的段。

  • 您可能也可以通過使用奇怪的連接語句來實現此目的。
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));