I have an MSSQL database field that looks like the examples below:
u129 james
u300 chris
u300a jim
u202 jane
u5 brian
u5z brian2
Is there a way to select the first set of characters? Basically select all the characters up until the first line space?
I tried messing around with LEFT, RIGHT, LEN, but couldn't figure out a way to do it with variable string lengths like in my example.
Thanks!
5条答案
按热度按时间svgewumm1#
You can use a combiation of
LEFT
andCHARINDEX
to find the index of the first space, and then grab everything to the left of that.And in case any of your columns don't have a space in them:
8yparm6h2#
yxyvkwin3#
If the first column is always the same size (including the spaces), then you can just take those characters (via
LEFT
) and clean up the spaces (withRTRIM
):Alternatively, you can extract the second (or third, etc.) column (using
SUBSTRING
):One benefit of this approach (especially if
YourColumn
is the result of a computation) is thatYourColumn
is only specified once.pqwbnv8z4#
如果您有时不想使用CASE语句而没有空格,则可以使用另一种方法
这在SQL Server中是有效的,根据我的搜索,MySQL也有同样的功能
2mbi3lxu5#
如果缺少空格,可以添加一个;)
SELECT LEFT('您的文本或列',字符索引(",'您的文本或列'+' ')- 1)