私はこれらの2つのテーブルを持っています
f_data
(
id (int, null),
name(varchar(255), null),
control (int, null),
)
ID名制御
1255、Almonte Jimenez Adalgisa、1131238601
92、Encarnacion Pamela、1131237483
3376、Feliz Luis Manuel、1131240995
688、HerrandMariñeDiomedes
、1131238666666666666666666666666666666666666666666666666666666666666666666666
est_data
(
id(int, null),
name(varchar(255), null),
firstname(varchar(255), null),
lastname(varchar(255), null),
)
id name firstname lastname
201201255 ,ADALGISA ,ALMONTE ,JIMENEZ ,
201200092 ,PAMELA ,ENCARNACION , ,
201223376 ,LUIS MANUEL ,FELIZ , ,
201200688 ,DIOMEDES ,HERRAND ,MARIÑTOE ,
MASTOALBERS , 2012JO01887
そしてこのSQLコード
select *
from est_data
where
CASE
WHEN
lastname = ' '
then
ltrim(rtrim(firstname)) + ' ' + ltrim(rtrim(name))
ELSE
ltrim(rtrim(firstname)) + ' ' + ltrim(rtrim(lastname))+' '+ltrim(rtrim(name))
END in
(Select ltrim(rtrim(name)) From f_data where id = 1887)
この結果:
CASE
WHEN
lastname = ' '
then
ltrim(rtrim(firstname)) + ' ' + ltrim(rtrim(name))
ELSE
ltrim(rtrim(firstname)) + ' ' + ltrim(rtrim(lastname))+' '+ltrim(rtrim(name))
END
「ホセ・アルベルト・マトス」です
そしてこの結果:
Select ltrim(rtrim(name)) From f_data where id = 1887
「ホセ・アルベルト・マトス」です
ただし、名前が同じ場合、コードは 0 行を返します。ここで何が問題になる可能性がありますか?
注: SQL Server 2000 を使用しています