2012-01-23 56 views
0

我正在嘗試創建一個select查詢,它將列值拆分爲兩個並將其顯示在兩個單獨的列中。我想在沒有功能的情況下做到這一點。如何根據條件將列分成兩列並在兩列分開顯示?

實施例: - 我在COL1爲「等級」的值: - 正當性」現在我 想要分割在 不同列中的列值和顯示等級和理由

由於(同意,不同意,強烈反對)如果列中包含強烈的意思,那麼這個列會包含下面給出的值以及分隔符和理由(同意,不同意,強烈反對)不同意那麼那個列將包含分隔符(:-)和其他的理由。我和我在sybase中使用。

+2

「沒有功能」是嚴格不可能的,你需要以某種方式處理列。我建議你命名你的數據庫軟件和版本,並顯示你的數據和期望的輸出的一些例子。 –

+0

@ErwinBrandstetter假設用戶不需要用戶定義的函數,這是可能的。 –

+1

@aF:假設天空是藍色的,它不是綠色的。你在答案中使用的'left()'和'right()'是*函數。 –

回答

0

假設,如果沒有一個功能,你的意思是一個用戶定義的函數,並從內存中這樣做,它可能是這樣的:

select left(COL1, charindex(':-', COL1)), 
     right(COL1, len(COL1) - charindex(':-', COL1) - 1) 
+0

是的。這可能是有用的,但「: - 」的發生也沒有被保證。在這種情況下可以做些什麼? – user968880

+0

@ user968880:你需要給我們更多的信息 - 具體來說,評分與理由分離的程度如何?他們之間總是有空間嗎?它們之間是否總是有空格或逗號或冒號?評分總是單個字符值? –

+0

@ user968880如果你不知道什麼是分裂是不可能的。 –