2017-03-01 3 views
0

の最初の単語の長さは、こんにちは、私はそれが見えるはずですディスプレイは、データセット

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; 

にそれぞれ最初の単語の文字の量を印刷するFirstWordLengthの出力を切り替えるには、この出力をしようとする問題を抱えていますこのような何か:

InvoiceLineItemDescription  FirstWordLength 
citi bank       4 
+3

使用しているデータベースで質問にタグを付けてください。 –

答えて

6

あなたはcharindex()を使用して第1ワード長を取得することができます。

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

あなたの質問と同じように、これは単語の区切りにスペースだけが使用されることを前提としています。より多くの区切り文字をサポートするには、PATINDEX()を使用できます。

コード内のcaseは機能するはずですが、長さではなく最初の単語を抽出するために使用しています。