49

以下の例のようなMSSQLデータベースフィールドがあります。

u129  james
u300  chris
u300a jim
u202  jane
u5    brian
u5z   brian2

最初の文字セットを選択する方法はありますか?基本的に最初の行スペースまでのすべての文字を選択しますか?

LEFT、RIGHT、LENをいじってみましたが、私の例のように可変の文字列長でそれを行う方法を見つけることができませんでした。

ありがとう!

4

4 に答える 4

3
select left(col, charindex(' ', col) - 1)
于 2012-11-20T20:00:24.987 に答える
2

最初の列が常に同じサイズ(スペースを含む) である場合は、それらの文字を ( 経由で) 取得し、スペースを ( で)LEFTクリーンアップできます。RTRIM

SELECT RTRIM(LEFT(YourColumn, YourColumnSize))

または、2 番目 (または 3 番目など) の列を抽出することもできます ( を使用SUBSTRING):

SELECT RTRIM(SUBSTRING(YourColumn, PreviousColumnSizes, YourColumnSize))

このアプローチの利点の 1 つは (特にYourColumnが計算の結果である場合)、YourColumn一度だけ指定されることです。

于 2016-07-08T02:40:04.533 に答える
1

時々スペースがなく、CASE ステートメントを使用したくない場合の代替手段

select REVERSE(RIGHT(REVERSE(YourColumn), LEN(YourColumn) - CHARINDEX(' ', REVERSE(YourColumn))))

これはSQL Serverで機能し、私の検索によると、MySQLには同じ機能があります

于 2014-08-06T03:49:58.800 に答える