这就是我想要做的.我有一个Tstringlist,一个名字.如果名称格式为DOE,JOHN,NMI,我希望它将名称拆分为3个不同的字符串.
但问题是,如果没有中间的首字母怎么办?或名字.就像它可能只是DOE一样,然后最后两行超出界限.程序崩溃了.什么是最好的解决方案?
var ptname, physname: Tstringlist;
if pos(',',Msg.Grp2[0].ObsReq[0].OrderingProviderFamilyName) > 0 then // split it if it has a comma
begin
physname := TstringList.Create;
physname.CommaText := Msg.Grp2[0].ObsReq[0].OrderingProviderFamilyName;
Parameters.ParamByName('@OrderingLastNameOBR16').Value := physname[0];
Parameters.ParamByName('@OrderingFirstNameOBR16').Value := physname[1];
Parameters.ParamByName('@OrderingMiddleNameOBR16').Value := physname[2];
physname.Free;
end
Run Code Online (Sandbox Code Playgroud) 基本上我想这样做:
我想返回一个记录集,如果它包含一个数字,则将一个nvarchar值(ID)转换为整数.如果ID可以转换为数字,则将该行添加到SELECT记录集.如果没有,请跳过该行.
我认为SQL看起来应该是这样的.
(dbo中的ID是nvarchar(10).表)
CREATE TABLE #Temp (ID int)
INSERT INTO #Temp SELECT ID FROM Table Where ISNumeric(Id)=0
Run Code Online (Sandbox Code Playgroud)
但是我得到一个错误:nvarchar值'Default'到数据类型int.如果我这样做SELECT CAST(ID as int)也不起作用.