的價值我有一個表可以說MySQL的第一個基於參數值來選擇列,然後
表1
t_id A B C
100 1 1 0
101 1 0 1
102 1 1 0
現在我已經基於輸入參數參數0上首先我必須選擇列(讓說B),然後使用t_id值(可以說101)我將選擇該選定的列(這是0)的值。
我想創建單個查詢,因爲我將在連接查詢中使用它。
以上是可能的,如果是的話如何編寫相同的sql?
的價值我有一個表可以說MySQL的第一個基於參數值來選擇列,然後
表1
t_id A B C
100 1 1 0
101 1 0 1
102 1 1 0
現在我已經基於輸入參數參數0上首先我必須選擇列(讓說B),然後使用t_id值(可以說101)我將選擇該選定的列(這是0)的值。
我想創建單個查詢,因爲我將在連接查詢中使用它。
以上是可能的,如果是的話如何編寫相同的sql?
在MySQL中,這是最容易與case
語句來完成:
select (case when @param0 = 'A' then A
when @param0 = 'B' then B
when @param0 = 'C' then C
end) as val
from table t
where id = @t_id;
其實,它是最容易case語句幾乎任何數據庫中完成。
爲我工作,也在加入聲明中,謝謝。 – Ajax
這對SQL服務器有效。我不知道這是否會在MySQL的 你可以做到這一點很容易被unpivoting的數據,然後選擇列,並使用TID參數where
條款 對於MySQL,你或許應該看看this article在計算器
SELECT Colvalue FROM (
SELECT t_id, ColName, ColValue
FROM
(SELECT t_id,A,B,C FROM tablename) t
UNPIVOT
(Colvalue FOR ColName IN (A,B,C))AS unpvtt)
WHERE [email protected] AND [email protected]
'從table1中選擇B,其中t_id = 101' –