以下の例のようなMSSQLデータベースフィールドがあります。
u129 james
u300 chris
u300a jim
u202 jane
u5 brian
u5z brian2
最初の文字セットを選択する方法はありますか?基本的に最初の行スペースまでのすべての文字を選択しますか?
LEFT、RIGHT、LENをいじってみましたが、私の例のように可変の文字列長でそれを行う方法を見つけることができませんでした。
ありがとう!
以下の例のようなMSSQLデータベースフィールドがあります。
u129 james
u300 chris
u300a jim
u202 jane
u5 brian
u5z brian2
最初の文字セットを選択する方法はありますか?基本的に最初の行スペースまでのすべての文字を選択しますか?
LEFT、RIGHT、LENをいじってみましたが、私の例のように可変の文字列長でそれを行う方法を見つけることができませんでした。
ありがとう!
select left(col, charindex(' ', col) - 1)
最初の列が常に同じサイズ(スペースを含む) である場合は、それらの文字を ( 経由で) 取得し、スペースを ( で)LEFT
クリーンアップできます。RTRIM
SELECT RTRIM(LEFT(YourColumn, YourColumnSize))
または、2 番目 (または 3 番目など) の列を抽出することもできます ( を使用SUBSTRING
):
SELECT RTRIM(SUBSTRING(YourColumn, PreviousColumnSizes, YourColumnSize))
このアプローチの利点の 1 つは (特にYourColumn
が計算の結果である場合)、YourColumn
一度だけ指定されることです。
時々スペースがなく、CASE ステートメントを使用したくない場合の代替手段
select REVERSE(RIGHT(REVERSE(YourColumn), LEN(YourColumn) - CHARINDEX(' ', REVERSE(YourColumn))))
これはSQL Serverで機能し、私の検索によると、MySQLには同じ機能があります