1

だから私は顧客のデータベースを持っています。実行するSELECT * FROM MyTableと、いくつかの列が返されます。そのうちの 1 つは名前です。次のようになります。

"Doe, John"
"Jones, Bill"
"Smith, Mike"
"Johnson, Bob"
"Harry Smith"
"Black, Linda"
"White, Laura"

等。いくつかは姓、名です。その他は名字です。

私の上司は、名前を反転させて、名前をすべて最初にして最後にするように求めています。

だから私はこれを実行しました:

SELECT SUBSTRING(Column_Name, CHARINDEX(',', Column_Name) + 2, LEN(Name) - CHARINDEX(',',  Column_Name) + 1) + ' ' + SUBSTRING(Column_Name, 1, CHARINDEX(',', Column_Name) - 1) FROM MyTable

問題は、それを実行すると、反転する必要のない名前が見つかるまで名前のみを実行することです。したがって、上記の例では、すべてではなく、最初の 4 つの名前のみが表示されます。

PATINDEX()を使用してすべての名前を引き出すことができると提案されました。これの使い方がわからないので、助けてもらえたらと思っていました。

4

2 に答える 2