我有两张不同的桌子..
Test1: with 1,2,3,4 as row elements upto 10.
Test2: with a,b,c,d as row elements upto j.
我希望通过单个查询显示结果,其中表中的每个偶数后跟前面的字母,省略奇数和其他字母。
就像这种情况一样,结果将是:2a, 4c, 6e, 8g, 10i. And 1,3,5,7,9 and b,d,f,h,j
将不会显示。
我需要使用一个没有数字或字母的大表来完成这项工作。
答案 0 :(得分:4)
它可能对你有帮助,它在sql server中,把它改成mysql
create table #alpha(alpha varchar(25))
insert #alpha values('a'),('b'),('c'),('d'),('e'),('f')
create table #Number(digits int)
insert #Number values(1),(2),(3),(4),(5),(6)
SELECT CAST(Number.digits as varchar(25))+''+Alphabets.alpha yourResult FROM
(SELECT ROW_NUMBER() over( order by digits asc) as id,digits from #Number ) Number
INNER JOIN (SELECT ROW_NUMBER() over( order by alpha asc) as id,alpha from #alpha ) Alphabets
ON Alphabets.id+1=Number.id
WHERE Number.digits%2=0
drop table #alpha
drop table #Number
输出:
yourResult
2a
4c
6e
答案 1 :(得分:0)
让Test1有一列Number,Test2有一列Ch:
select * from Test1, Test2 where (Number%2=0) and char(95 + Number)=Ch
对于任意类型的行,它不清楚,因为在SQL行中实际上没有任何顺序。