Wok*_*man 2 sql t-sql sql-server
假设我的数据库中有以下(虚构的)条目:
ABC-X123
ABC-XY56
XYZ-A12
OP-123
HJK098
Run Code Online (Sandbox Code Playgroud)
获取第一个数值之前的值的最佳方法是什么,这样我就会得到
ABC-X
ABC-XY
XYZ-A
OP-
HJK
Run Code Online (Sandbox Code Playgroud)
我知道如何使用函数来完成此操作,但我没有可用的选项,因此如果可行,应该在 SQL 语句中完成。
使用 case 和 patindex 应该有效:
MS SQL Server 2008 架构设置:
create table t (str varchar(50))
insert t values
('ABC-X123'),
('ABC-XY56'),
('XYZ-A12'),
('OP-123'),
('HJK098')
Run Code Online (Sandbox Code Playgroud)
查询1:
select
case patindex('%[0-9]%', str)
when 0 then str
else left(str, patindex('%[0-9]%', str) -1 )
end
from t
Run Code Online (Sandbox Code Playgroud)
结果:
| COLUMN_0 |
|----------|
| ABC-X |
| ABC-XY |
| XYZ-A |
| OP- |
| HJK |
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3817 次 |
最近记录: |