ざっと適当にやるとこんな感じです。
優先順位の付け方はご自身でいろいろ試してみてください
javascript
1var sort={'CMF':1,'GK':2,'CB':3};
2$(function(){
3 $('#t1 th').on('click',function(){
4 var num=$('#t1 th').index(this);
5 console.log(num);
6 var n=[];
7 $('#t1 tbody tr').each(function(){
8 n.push($(this).clone());
9 $(this).remove();
10 });
11 n.sort(function(x1,y1){
12 var x2=x1.find("td").eq(num).text();
13 var y2=y1.find("td").eq(num).text();
14 if(num==0){
15 x2=parseInt(x2);
16 y2=parseInt(y2);
17 }
18 if(num==1){
19 if(sort[x2]!==undefined) x2=sort[x2];
20 if(sort[y2]!==undefined) xy=sort[y2];
21 }
22 return x2>y2;
23 });
24 n.forEach(function(i){
25 $('#t1 tbody').append(i);
26 });
27 });
28});
HTML
1<table border id="t1">
2<thead>
3<tr><th>id</th><th>ポジション</th></tr>
4</thead>
5<tbody>
6<tr><td>1</td><td>GK</td></tr>
7<tr><td>2</td><td>GK</td></tr>
8<tr><td>3</td><td>RSB</td></tr>
9<tr><td>4</td><td>RSB</td></tr>
10<tr><td>5</td><td>CB</td></tr>
11<tr><td>6</td><td>CB</td></tr>
12<tr><td>7</td><td>LSB</td></tr>
13<tr><td>8</td><td>LSB</td></tr>
14<tr><td>9</td><td>CMF</td></tr>
15<tr><td>10</td><td>CMF</td></tr>
16<tr><td>11</td><td>DMF</td></tr>
17<tr><td>12</td><td>DMF</td></tr>
18</tbody>
19</table>