Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.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 Server 2012 我有一个简单的问题 select * from P_Bld where datep = (select max(datep) from P_Bld) and codeBlood like 'nm_%' order by codeBlood 这可以正常工作,并返回如下所示的数据 codeBlood num nm_aab 1 nm_abc 2 nm_rst 3 我想知道是否有可能更改codeBlood列,

我正在使用SQL Server 2012

我有一个简单的问题

select * from P_Bld
where datep = (select max(datep) from P_Bld)
and codeBlood like 'nm_%'
order by codeBlood
这可以正常工作,并返回如下所示的数据

codeBlood     num
nm_aab        1
nm_abc        2
nm_rst        3
我想知道是否有可能更改codeBlood列,使其不包含'nm_u3;',并将字符串的其余部分改为大写,以便得到如下内容:

codeBlood     num
AAB        1
ABC        2
RST        3
这可能吗?

我想这样就可以了, 首先使用
replace()
函数将“nm”替换为空白,然后将剩余字符串转换为大写bu
Upper()
函数

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
我想这个就行了, 首先使用
replace()
函数将“nm”替换为空白,然后将剩余字符串转换为大写bu
Upper()
函数

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 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

是的,你可以这样做

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

抱歉,应该是rf,还有一张桌子上有nm。我在这篇文章里把一切都写在了nm_uu上。感谢您发现,如果您有一个列
codeBlood
,这是否意味着您有一个“人类可读”的翻译表?你不应该用它来代替吗?很抱歉,它应该是rf的,还有一张有nm的桌子。我在这篇文章里把一切都写在了nm_uu上。感谢您发现,如果您有一个列
codeBlood
,这是否意味着您有一个“人类可读”的翻译表?你不应该使用它吗?使用了3个函数,而使用了2个函数。它会影响性能吗?使用了3个功能,而使用了2个功能。它会影响性能吗?