我對sql存儲過程有奇怪的要求。我有rqst,key和keyType表。 Rqst表列保存不同主表的FK,如status,requesType和processType。密鑰表將rqstId作爲FK保存在一列中。 keyType是密鑰表中使用的主表。是否可以使用SQL將值傳遞給order by子句?
我的DAT看起來有些這樣的事
RqstTable
rqstId appId statsId procesTypId requestType updtBy createDt orchiveId
10125 3 102 5 4 Test date c1235a
KEYTABLE
keyId rqstId keyTypeId KeyValue
123 10125 2 9586
KeyTypeTable
KeyTypeId KeyTypeName Description
1 key1 key1des
2 key2 key2des
我的要求是用戶將提供這些輸入字段status,requestType, processType and date
。也應該是order by key3 from keyTypeTable
。
根據我的搜索,我們不能通過子句將值傳遞給列,並且根據文檔我們可以將表達式作爲order by的一部分傳遞。我厭倦scalr子查詢像
select * from rqst a,
left join key b on b.rqstId = a.rqstId
left join KeyType c on c.keyTypeId = b.KeyTypeId
where a.procesTypId = 5 and a.requestType = 4 and a.statsId = 102
order by KeyTypeName; -- but want some thing like KeyTypeName='key2'
但結果是相同的,因爲與order by clause.it沒有工作。
我的預期了將
KeyValue rqstId orchiveId
9586 10125 c1235a
我使用的Oracle此書面方式我的SQL。
任何人都可以建議我或有可能在我的要求中有這樣的順序。
SQL服務器,MySQL? – Mihai
你還可以顯示*期望的輸出*嗎? –
'(從keyTypeId = 2的key中選擇不同的keyTypeId)''會得到'2',所以基本上你想'ORDER BY 2'? – marekful