我有點難以忍受我需要爲工作編寫的查詢。我有以下兩個表格:SQL使用兩個表中的值作爲其他列名作爲列名
|===============Patterns==============|
|type | bucket_id | description |
|-----------------------|-------------|
|pattern a | 1 | Email |
|pattern b | 2 | Phone |
|==========Results============|
|id | buc_1 | buc_2 |
|-----------------------------|
|123 | pass | |
|124 | pass |fail |
在結果表中,我可以看到實體124未通過buc_2中的驗證檢查。查看模式表,我可以看到bucket 2屬於模式b(bucket_id對應於結果表中的列名),所以實體124未通過手機驗證。但是,我該如何編寫一個查詢來將這兩個表連接到一列的值?如何調用此查詢的限制很可能會阻止我使用任何遊標。
你需要什麼來得到結果?你不能以這種方式「加入」它們,但是你可以爲每個'buc_X'列創建一個特定的連接子句。 – 2014-12-13 00:00:59
你可以重組你的桌子嗎?這不是規範化數據庫的良好實現。每當你添加一個新的模式,你需要添加一個新的列到你的結果表... – sgeddes 2014-12-13 00:09:46
哪個版本的Oracle DB你有?你應該看看PIVOT和UNPIVOT的概念 - http://oracle-base.com/articles/11g/pivot-and-unpivot-operators-11gr1.php – Steam 2014-12-13 00:26:33