2013-01-04 79 views
-3

我很抱歉,我在我的電話中將這些問題寫在了我的手機上,所以我沒有現有的代碼。我已經想出了一些,但仍需要一些幫助SQL將2列分爲多列

1)問題1:拆分後每6位數字,基本上我需要拆分我的列後每隔5位數字,以便123456創建列,12345和一個第二個6,我已經嘗試使用下面的代碼沒有結果。沒有空格或符號,只有數字。

substring(COA.UserCode2,5,charindex('',COA.UserCode2)) as Accountsubstring(COA.UserCode2,6,charindex('',COA.UserCode2)) as Project

2)問題2:每次拆分後*,我可以得到的第一個下面的工作(基金),但我的成本中心和源代碼,如果我有一個字符串基本上不工作如:1234 * 34 * 500,我需要的列基金有1234(這我得到的話),我的成本中心說34,我的源說500

substring(COA.UserCode3, 1,charindex('*',COA.UserCode3)) as Fund,
substring(COA.UserCode3, 3,charindex('*',COA.UserCode3)+1) as CostCenter,
substring(COA.UserCode3, 1,charindex('*',COA.UserCode3)) as Source

+0

這裏有問題嗎?或者你想讓別人爲你寫代碼? – ryadavilli

+0

請搜索BOL的substring(),charindex(),patindex()函數,你會發現你需要的一切。 SO不是代碼編寫服務 – Raj

+0

@ryadvaville,我不確定你的意思是我希望有人爲我寫代碼,我的理解是這是一個提問的論壇,我的問題很清楚1)有人可以給我看一個每6位分割一個字符串的例子,2)有人可以給我看一個在每個*之後分割一個字符串的例子。如果那太過分了,我想我誤解了論壇的目的。我在很多論壇上回答了100多個問題,從來沒有覺得有必要讓任何人變得聰明,但是,我想你們都知道這一切都是師父。 –

回答

0

對於問題1,更換

charindex('',COA.UserCode2) 

len(COA.UserCode2) 

(或只是硬編碼的長度)。

對於問題2,第二列和第三列的Substring Start參數需要考慮您已經在上一列中切出的字符串的長度。我會用嵌套的select語句來編寫代碼,以使代碼更加笨拙。