2017-03-01 69 views
0

嗨,我有問題想切換FirstWordLength的輸出到該輸出打印每個第一個字的字符量顯示的數據集

SELECT InvoiceLineItemDescription, 
LEFT(InvoiceLineItemDescription, 
CASE 
WHEN charindex(' ', InvoiceLineItemDescription) = 0 THEN LEN(InvoiceLineItemDescription) 
ELSE charindex(' ', InvoiceLineItemDescription) - 1 END) 
AS FirstWordLength 
FROM InvoiceLineItems 
ORDER BY FirstWordLength desc; 

應該看的第一個字的長度是這樣的:

InvoiceLineItemDescription  FirstWordLength 
citi bank       4 
+3

用您正在使用的數據庫標記您的問題。 –

回答

6

可以使用charindex()獲得第一字長:

SELECT InvoiceLineItemDescription, 
     CHARINDEX(' ', InvoiceLineItemDescription + ' ') - 1 as FirstWordLength 
FROM InvoiceLineItems 
ORDER BY FirstWordLength desc; 

正如你的問題一樣,這裏假定只有空格用於分隔單詞。您可以使用PATINDEX()來支持更多的分隔符。

代碼中的case應該可以工作,但是您使用它來提取第一個單詞,而不僅僅是長度。