2017-06-22 30 views
0

我有SQL SELECT查詢與長字符串,例如:歇線的時候分隔符SQL

SELECT RTRIM(CAST(DNH_INFO AS VARCHAR(150))) 

'_This is _a very _long string _separated _with underline'

,因爲我得到一個想打破由下劃線線,但仍保持在相同的字符串,〔實施例:

'_This is 

_a very 

_long string 

_...' 

是否有與我能解決這個問題的任何SQL函數?

感謝您的幫助!

+0

我認爲你應該標記SQL數據庫引擎(MSSQL,MySQL,甲骨文,Postresql,DB2,訪問等) – etsa

+0

...那麼你可以看看在https://stackoverflow.com/questions/5123585/how-to-split-a-single-column-values-to-multiple-column-values或類似 – etsa

+0

你想它作爲一個單獨的行或不同列? – Viki888

回答

1

@makaroN您可以用LineFeed和回車符替換空格和下劃線,然後重新添加下劃線。或者,你可以,如果在執行中只能使用回車(CHAR(13)或反向CHAR(13)+ CHAR(10)如果你不需要額外的空行。參見下面的例子。

SELECT REPLACE('_This is _a very _long string _separated _with underline', 
       ' _', char(10) + char(13) + '_') 

PS管理工作室,你可能想選擇結果到文本立即看到的格式。

+0

感謝@trincot只是編輯顯示下劃線。 –

+0

Windows換行符是CrLf,而不是LfCr,所以我會說你需要'char(13)+ char(10)'來獲得換行符。 – Andre

+0

是的,這是我剛纔提到的,但他的例子顯示了通過倒轉到LfCr的線條之間的一個很大的空間......至少在管理工作室。 –