Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL返回最后一个空格右边的字符_Sql_Sql Server - Fatal编程技术网

SQL返回最后一个空格右边的字符

SQL返回最后一个空格右边的字符,sql,sql-server,Sql,Sql Server,我有一堆SQL格式的记录。请注意,这些空间并不一致 WHAT IT LOOKS LIKE NOW WHAT I WANT IT TO RETURN ================================================================================ PartNumber PartNumber PartNumberStripped ---------

我有一堆SQL格式的记录。请注意,这些空间并不一致

WHAT IT LOOKS LIKE NOW            WHAT I WANT IT TO RETURN
================================================================================

PartNumber                        PartNumber           PartNumberStripped
----------------------            --------------------------------------------------
AA BB 11A222                      AA BB 11A222         11A222
AA BB 11B333                      AA BB 11B333         11B333
BBBB 123456                       BBBB 123456          123456
BB BB 2875309                     BB BB 2875309        2875309
CC-BB RANDOMSTRING                CC-BB RANDOMSTRING   RANDOMSTRING
如何返回最后一个空格左侧的“零件号”以及去掉所有字符的零件号(仅返回最后一个空格右侧的字符)

以下内容接近我需要的内容,但在寻找空间时从左侧开始。一、 但是,需要它从右侧开始有效地搜索

SELECT PartNumber, 
  RIGHT (
    PartNumber
    ,(LEN(PartNumber) - CHARINDEX (' ', PartNumber))
  ) AS PartNumberStripped
FROM tb_Parts
这段代码将返回以下内容,正如您在上面的“我希望它返回什么”一节中看到的那样,这并不完全正确

PartNumber           PartNumberStripped
---------------------------------------
AA BB 11A222         BB 11A222
AA BB 11B333         BB 11B333
BBBB 123456          123456
BB BB 2875309        BB 2875309
CC-BB RANDOMSTRING   RANDOMSTRING

提前谢谢

我想有时候只要把你的问题打出来就可以帮助你集中注意力,帮助你进行搜索查询。在发布这个问题几分钟后,我用“反向”找到了一个有效的解决方案

SELECT 
  PartNumber, 
  RIGHT(PartNumber, COALESCE(NULLIF(CHARINDEX(' ', REVERSE(PartNumber)), 0) - 1, LEN(PartNumber))) AS PartNumberStripped
FROM tb_Parts 

解决方案的来源:

我想有时候只要把你的问题打出来,就可以帮助你集中注意力,帮助你进行搜索查询。在发布这个问题几分钟后,我用“反向”找到了一个有效的解决方案

SELECT 
  PartNumber, 
  RIGHT(PartNumber, COALESCE(NULLIF(CHARINDEX(' ', REVERSE(PartNumber)), 0) - 1, LEN(PartNumber))) AS PartNumberStripped
FROM tb_Parts 

解决方案的来源:

另一个选项是
parsename()。。。前提是您的空间不超过4个

示例

Declare @YourTable Table ([PartNumber] varchar(50))  Insert Into @YourTable Values 
 ('AA BB 11A222')
,('AA BB 11B333')
,('BBBB 123456')
,('BB BB 2875309')
,('CC-BB RANDOMSTRING')

Select *
      ,NewValue = parsename(replace(PartNumber,' ','.'),1)
 From @YourTable
返回

PartNumber          NewValue
AA BB 11A222        11A222
AA BB 11B333        11B333
BBBB 123456         123456
BB BB 2875309       2875309
CC-BB RANDOMSTRING  RANDOMSTRING

另一个选项是
parsename()
。。。前提是您的空间不超过4个

示例

Declare @YourTable Table ([PartNumber] varchar(50))  Insert Into @YourTable Values 
 ('AA BB 11A222')
,('AA BB 11B333')
,('BBBB 123456')
,('BB BB 2875309')
,('CC-BB RANDOMSTRING')

Select *
      ,NewValue = parsename(replace(PartNumber,' ','.'),1)
 From @YourTable
返回

PartNumber          NewValue
AA BB 11A222        11A222
AA BB 11B333        11B333
BBBB 123456         123456
BB BB 2875309       2875309
CC-BB RANDOMSTRING  RANDOMSTRING