同时查询和格式化字符串
query and formatting string at the same time
我正在使用 SQL Server 2012。
我有一个简单的查询,
select * from P_Bld
where datep = (select max(datep) from P_Bld)
and codeBlood like 'nm_%'
order by codeBlood
这很好用,returns数据如下所示
codeBlood num
nm_aab 1
nm_abc 2
nm_rst 3
我想知道是否可以更改 codeBlood 列,使其不包含 'nm_' 并将字符串的其余部分设为大写,这样我会得到如下所示的内容,
codeBlood num
AAB 1
ABC 2
RST 3
这可能吗?
我想这样就可以了,
首先使用 Replace()
函数将 "nm_" 替换为空白,然后通过 Upper()
fraction
将剩余的字符串转换为大写
select Upper(Replace(codeBlood,'nm_','')) as codeBlood,num from P_Bld
where datep = (select max(datep) from P_Bld)
and codeBlood like 'nm_%'
order by codeBlood
如果模式相同,试试这个
select Upper(substring(codeBlood,4,length(CodeBllod))),num from P_Bld
where datep = (select max(datep) from P_Bld)
and codeBlood like 'rf_%'
order by codeBlood
是的,你可以像下面那样做
select SUBSTRING ( UPPER(codeBlood) ,4 , LEN(codeBlood) ),num from P_Bld
where datep = (select max(datep) from P_Bld)
and codeBlood like 'rf_%'
order by codeBlood
我正在使用 SQL Server 2012。
我有一个简单的查询,
select * from P_Bld
where datep = (select max(datep) from P_Bld)
and codeBlood like 'nm_%'
order by codeBlood
这很好用,returns数据如下所示
codeBlood num
nm_aab 1
nm_abc 2
nm_rst 3
我想知道是否可以更改 codeBlood 列,使其不包含 'nm_' 并将字符串的其余部分设为大写,这样我会得到如下所示的内容,
codeBlood num
AAB 1
ABC 2
RST 3
这可能吗?
我想这样就可以了,
首先使用 Replace()
函数将 "nm_" 替换为空白,然后通过 Upper()
fraction
select Upper(Replace(codeBlood,'nm_','')) as codeBlood,num from P_Bld
where datep = (select max(datep) from P_Bld)
and codeBlood like 'nm_%'
order by codeBlood
如果模式相同,试试这个
select Upper(substring(codeBlood,4,length(CodeBllod))),num from P_Bld
where datep = (select max(datep) from P_Bld)
and codeBlood like 'rf_%'
order by codeBlood
是的,你可以像下面那样做
select SUBSTRING ( UPPER(codeBlood) ,4 , LEN(codeBlood) ),num from P_Bld
where datep = (select max(datep) from P_Bld)
and codeBlood like 'rf_%'
order by codeBlood