好的,这就是我想要完成的事情。
表1中有一个名为inifile,path的列。参赛作品看起来像......
----------------------------------
| inifile | path |
----------------------------------
|example1.ini | c:\temp\text.txt |
|example2.ini | c:\temp\text2.txt |
----------------------------------
表2包含名为jobs和作业名称的列。参赛作品看起来像......
----------------------------
| jobs | job name |
----------------------------
| example1 | Example Job 1 |
| example2 | Example Job 2 |
----------------------------
表2中的作业数据与表1中的inifile相匹配,减去'.ini'扩展名。因此,我需要修剪“inifile”字段的扩展名,并将其与“jobs”字段一起加入,以返回“作业名称”和“路径”。 inifile中的字段长度不同。
所以返回带回来
------------------------------------------------------
| jobs | job name | path |
------------------------------------------------------
| example1 | Example Job 1 | c:\temp\text.txt |
| example2 | Example Job 2 | c:\temp\text2.txt|
------------------------------------------------------
我对此大肆渲染,并没有任何运气。
答案 0 :(得分:0)
我认为这会为你做到:
Select T2.*
from T2
inner join T1 on Replace(inifile, '.ini', '') = T2.jobs
答案 1 :(得分:0)
试试这个:
SELECT Table2.jobs, table2.JobName, table1.Path
FROM
Table1
JOIN Table2 ON table2.jobs = REPLACE(table1.inifile, '.ini','')
答案 2 :(得分:0)
试试这个
while (currentPtr!=NULL) {
if()
printf("%c", currentPtr->data);
currentPtr=currentPtr->nextPtr;
}
答案 3 :(得分:0)
如果您保证最多只出现一次' .ini'在字符串值中,并且它在字符串的末尾,那么REPLACE
函数(在其他答案中演示)可以为你工作。
要在第一次出现' .ini'时修剪字符串,您可以使用SUBSTRING_INDEX
函数
SET @foo = 'foo.ini' ;
SELECT SUBSTRING_INDEX(@foo,'.ini',1) ;
如果有多次出现' .ini'在字符串中,您的目标是删除' .ini'从字符串的末尾...
SET @foo = 'foo.init.bar.ini';
SELECT IF(@foo LIKE '%.ini',SUBSTRING(@foo,1,CHAR_LENGTH(@foo)-4),@foo) ;
无论哪个表达式都需要它来返回列中的值,您可以在谓词中使用该表达式。
SELECT ...
FROM table1 t1
JOIN table2 t2
ON t2.jobs = IF(t1.inifile LIKE %.ini'
,SUBSTRING(t1.inifile,1,CHAR_LENGTH(t1.initfile)-4)
,t1.inifile
)
作为替代方案,您可以考虑将".ini"
连接到table2中列的值,并进行比较
ON CONCAT(t2.jobs,'.ini') = t1.inifile
答案 4 :(得分:0)
您没有指定RDBMS。假设您使用SQL Server 2012+
,则可以使用PARSENAME
:
SELECT t2.job, t2.job_name, t1.path
FROM table1 t1
JOIN table2 t2
ON PARSENAME(inifile,2) = t2.job;
的 LiveDemo
强>
输出:
╔══════════╦═══════════════╦══════════════════╗
║ job ║ job_name ║ path ║
╠══════════╬═══════════════╬══════════════════╣
║ example1 ║ Example Job 1 ║ c:\temp\text.txt ║
║ example2 ║ Example Job 2 ║ c:\temp\text2.tx ║
╚══════════╩═══════════════╩══════════════════╝