所以我有一个客户数据库。我运行SELECT * FROM MyTable
它给了我几列,其中之一是名称。看起来像这样:
"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
问题是,当我运行它时,它只会运行名称,直到找到不需要翻转的名称。所以在上面的例子中,它只会给我前四个名字,而不是全部。
有人建议我可以使用PATINDEX()
来提取所有名称。我不知道如何使用它,希望我能得到一些帮助。