String 字符串连接和撇号标记
我正在用MATLAB编写一个长sql查询。为了让人们更容易阅读它在做什么,我尝试将查询分成几行,而不是一行 下面是我的代码(名称已更改) 我的问题是x_lbl(1,1)需要一个“任意一边”。i、 e f2=‘健康’ 上面的代码给了我“Health”,这相当模糊,就像我只做下面的一行,就得到了“Health”。也许我失明了,失去了理智,但看不见以正确的格式进行查询String 字符串连接和撇号标记,string,matlab,String,Matlab,我正在用MATLAB编写一个长sql查询。为了让人们更容易阅读它在做什么,我尝试将查询分成几行,而不是一行 下面是我的代码(名称已更改) 我的问题是x_lbl(1,1)需要一个“任意一边”。i、 e f2=‘健康’ 上面的代码给了我“Health”,这相当模糊,就像我只做下面的一行,就得到了“Health”。也许我失明了,失去了理智,但看不见以正确的格式进行查询 lbl = strcat('''', x_lbl(1,1), ''''); 更新 x_lbl(1,1) ans = 'Heal
lbl = strcat('''', x_lbl(1,1), '''');
更新
x_lbl(1,1)
ans = 'Health Care'
sql_statement = [1x225 char]
这就是使用最后一行时的答案
,' where DVLP_QES.dbo.num_name_mapping.name = ','''', x_lbl(1, 1),'''');
如果您需要您的
sql\u语句
像select[…]tableTwo.f2='Health'
那样完成,则需要在您的strcat
末尾再添加两个单引号:
sql_statement = strcat('select some_feilds from'...
,' databaseOne.tableOne'...
,' join databaseTwo.tableTwo'...
,' on databaseOne.tableOne.f1 = databaseTwo.tableTwo.f2'...
,' where databaseTwo.tableTwo.f2 =','''', x_lbl(1, 1),'''');
我想x_lbl(1,1)=健康
没有引号,对吗
编辑:
使用MatlabR2014A
>> x_lbl = 'Health';
>> x_lbl
x_lbl =
Health
>> sql_statement = strcat('select some_feilds from'...
,' databaseOne.tableOne'...
,' join databaseTwo.tableTwo'...
,' on databaseOne.tableOne.f1 = databaseTwo.tableTwo.f2'...
,' where databaseTwo.tableTwo.f2 =','''', x_lbl,'''');
>> sql_statement
sql_statement =
select some_feilds from databaseOne.tableOne join databaseTwo.tableTwo on databaseOne.tableOne.f1 = databaseTwo.tableTwo.f2 where databaseTwo.tableTwo.f2 ='Health'
如果
x_lbl(1,1)
是一个数字,您可以使用num2str
?e、 g.a=strcat('we',num2str(34),'are')
hiya抱歉应该指定x_lbl(1,1)始终是一个字符串,在我的语句末尾使用“”,x_lbl(1,1),''实际返回“Health Care”。不确定为什么它与工作的单行代码不同x_lbl(1,1)
中的内容以及所需的输出是什么?是不是[…]tableTwo.f2='Health'
?Health在x_lbl(1,1)中?你确定x_lbl(1,1)没有引号吗?是的,没有引号。健康
>> x_lbl = 'Health';
>> x_lbl
x_lbl =
Health
>> sql_statement = strcat('select some_feilds from'...
,' databaseOne.tableOne'...
,' join databaseTwo.tableTwo'...
,' on databaseOne.tableOne.f1 = databaseTwo.tableTwo.f2'...
,' where databaseTwo.tableTwo.f2 =','''', x_lbl,'''');
>> sql_statement
sql_statement =
select some_feilds from databaseOne.tableOne join databaseTwo.tableTwo on databaseOne.tableOne.f1 = databaseTwo.tableTwo.f2 where databaseTwo.tableTwo.f2 ='Health'