Trim SQL 上的一个角色
Trim a character on SQL
大家好,这是我第一次问问题。
我的数据库中有多个带有数字和“/”的代码,例如:
510325205
510325205/000/01
510565025-01
510565025-01/090/03
...
我需要 trim /
- 我需要这些结果:
510325205
510325205
510565025-01
510565025-01
...
我已经搜索并尝试过这个
left(code, charindex('/', code))
并且它适用于其中包含/
的代码,但是没有/
的代码被排除在结果之外。
感谢您的帮助!
您的尝试非常接近。
您只需添加 -1。
可以看到left()函数的解释:
The LEFT() function extracts a number of characters from a string
(starting from left): LEFT(string, number_of_chars)
使用 charindex() 函数,您已经告诉 left() 函数要占用多少个字符。通过添加 -1 你已经删除了'/'符号,因为你已经告诉 LEFT() 函数取 10 个字符而不是 11(例如)因为第 11 个字符是'/'。
select left('510325205/000/01',charindex('/','510325205/000/01')-1)
或者因为您有名为代码的列
select left(code,charindex('/',code)-1)
如果你的值没有 / 你可以使用这个:
select case when charindex('/',code_c)-1 = -1
then
code_c
else
left(code_c,charindex('/',code_c)-1)
end RESULT
from test
或
select left(code_c,iif(charindex('/',code_c)-1 = -1, len(code_c), charindex('/',code_c)-1))
from test
大家好,这是我第一次问问题。
我的数据库中有多个带有数字和“/”的代码,例如:
510325205
510325205/000/01
510565025-01
510565025-01/090/03
...
我需要 trim /
- 我需要这些结果:
510325205
510325205
510565025-01
510565025-01
...
我已经搜索并尝试过这个
left(code, charindex('/', code))
并且它适用于其中包含/
的代码,但是没有/
的代码被排除在结果之外。
感谢您的帮助!
您的尝试非常接近。 您只需添加 -1。
可以看到left()函数的解释:
The LEFT() function extracts a number of characters from a string (starting from left): LEFT(string, number_of_chars)
使用 charindex() 函数,您已经告诉 left() 函数要占用多少个字符。通过添加 -1 你已经删除了'/'符号,因为你已经告诉 LEFT() 函数取 10 个字符而不是 11(例如)因为第 11 个字符是'/'。
select left('510325205/000/01',charindex('/','510325205/000/01')-1)
或者因为您有名为代码的列
select left(code,charindex('/',code)-1)
如果你的值没有 / 你可以使用这个:
select case when charindex('/',code_c)-1 = -1
then
code_c
else
left(code_c,charindex('/',code_c)-1)
end RESULT
from test
或
select left(code_c,iif(charindex('/',code_c)-1 = -1, len(code_c), charindex('/',code_c)-1))
from test