我有一個表TBLSQL:拆分列值分爲兩列
我怎麼能由10分裂列的值(字符數)
FROM:
Column1
Butuan City Philippines
Zamboanga City Philippines
Manila City Philippines
TO:
Column1 Column2
Butuan Cit y Philippines
Zamboanga City Philippines
Manila Cit y Philippines
我有一個表TBLSQL:拆分列值分爲兩列
我怎麼能由10分裂列的值(字符數)
FROM:
Column1
Butuan City Philippines
Zamboanga City Philippines
Manila City Philippines
TO:
Column1 Column2
Butuan Cit y Philippines
Zamboanga City Philippines
Manila Cit y Philippines
您可以使用SUBSTRING()
功能:
SELECT SUBSTRING(Column1, 1, 10) AS Column1,
SUBSTRING(Column1, 11, LEN(Column1) - 10) AS Column2
FROM yourtable
請注意,我們不必擔心在子字符串中使用的索引大於Column1
q.v.的長度。 documentation其中規定:
如果start [第二個參數]大於值表達式中的字符數,則返回零長度表達式。
和
如果起點和長度的總和比在表達的字符數時,則返回開始處開始整個值表達式。
如果給出一個靜態長度,如果列值長度增加,它不會發生錯誤?如果列值是'Llanfairpwllgwyngyll' –
您的問題對我沒有意義,但我相信我的答案會起作用,而不需要訴諸'LEFT()'或除SUBSTRING()之外的任何輔助函數。 –
使用LEFT
和SUBSTRING
字符串函數。試試這個
DECLARE @str VARCHAR(100) = 'Zamboanga City Philippines'
SELECT LEFT ((@str), 10),
Substring ((@str), 10 + 1, Len(@str))
可以使用LEFT
,LEN
和SUBSTRING
SELECT LEFT(Column1,10) AS 'Column1'
SELECT SUBSTRING(Column1, LEN(LEFT(Column1,10)) + 1, LEN(Column1)) AS 'Column2'
合併這兩個查詢:
SELECT LEFT(Column1,10) AS 'Column1',
SUBSTRING(Column1, LEN(LEFT(Column1,10)) + 1, LEN(Column1)) AS 'Column2'
您可以使用,打造SUBSTRING()功能SQL來實現您的預期結果。
例如,
IF (LEN(Column1) > 10)
BEGIN
SELECT SUBSTRING(Column1, 1, 10) AS Column1,SUBSTRING(Column1, 11, LEN(Column1) - 10) AS Column2
FROM <TABLE>
END
lookup substring() –
你想在列2中的y? –