iT邦幫忙

1

SQL指令該如何寫?

XYZ 2019-07-11 11:02:575438 瀏覽
  • 分享至 

  • xImage

請問圖一怎麼轉變成圖二,SQL要如何寫?
註:圖一的欄位說明t1(已收),t2(未收),t3(取消)

https://ithelp.ithome.com.tw/upload/images/20190711/20108157IRdItug0H1.jpg

https://ithelp.ithome.com.tw/upload/images/20190711/20108157SvrFg8vsFH.jpg

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
6
rogeryao
iT邦超人 7 級 ‧ 2019-07-11 12:00:31
最佳解答
SELECT year_3,mon,dep,income,
(CASE
WHEN t1='T' THEN N'已收'
WHEN t2='T' THEN N'未收'
WHEN t3='T' THEN N'取消'
END) AS '狀態'
FROM Temp

Demo

XYZ iT邦新手 4 級 ‧ 2019-07-11 13:52:30 檢舉

謝謝您解決我的問題

1
player
iT邦大師 1 級 ‧ 2019-07-11 11:13:10
看更多先前的回應...收起先前的回應...
XYZ iT邦新手 4 級 ‧ 2019-07-11 11:16:31 檢舉

case when不能轉成中文字串

XYZ iT邦新手 4 級 ‧ 2019-07-11 11:34:26 檢舉

SELECT year_3,mon,dep,income,

(CASE
WHEN t1='TRUE' THEN '已收'
WHEN t2='TRUE' THEN '未收'
WHEN t3='TRUE' THEN '取消'
END) AS 狀態
FROM A

https://ithelp.ithome.com.tw/upload/images/20190711/20108157rNixqiniCt.jpg

player iT邦大師 1 級 ‧ 2019-07-11 11:35:22 檢舉

才疏學淺, 請另請高明
SQL 我只是在SQL Server 6.5時期才開始學的
不曉得你說的"case when不能轉成中文字串"是指什麼?

小魚 iT邦大師 1 級 ‧ 2019-07-11 11:44:18 檢舉

你的類型是Bit吧 XD

SELECT year_3,mon,dep,income,

(CASE
WHEN t1=1 THEN '已收'
WHEN t2=1 THEN '未收'
WHEN t3=1 THEN '取消'
END) AS 狀態
FROM A

話說 科目 是哪來的?

dragonH iT邦超人 5 級 ‧ 2019-07-11 14:17:03 檢舉

不是答案都沒回應 XD/images/emoticon/emoticon37.gif
it邦 sql查詢器

WQ iT邦新手 2 級 ‧ 2019-07-12 09:44:27 檢舉

WHEN t1='TRUE' THEN '已收' <==true 不要用''這個吧
WHEN t2='TRUE' THEN '未收'
WHEN t3='TRUE' THEN '取消'

2
japhenchen
iT邦超人 1 級 ‧ 2019-07-11 11:16:14
SELECT 
    year3,mon,dep,income,
    CASE WHEN t3=TRUE THEN '取消' ELSE 
        CASE WHEN t1=TRUE THEN '已收' ELSE '未收' END
    END AS 狀態
FROM yourtable
WHERE    .........................
ORDER BY .........................

※如果你的SQL版本不支援TRUE/FALSE,那改成t3=1(真)或0就可以

看更多先前的回應...收起先前的回應...

好奇一件事,已收未收為何要用兩個欄位來表示?既然兩欄位互斥,用一個T1表示已收未收就好了嘛,多一欄多一個未知的邊際效應

XYZ iT邦新手 4 級 ‧ 2019-07-11 11:50:55 檢舉

出現錯誤訊息,看不出哪裡有錯

https://ithelp.ithome.com.tw/upload/images/20190711/20108157eLSBq78AU5.jpg

你不是使用微軟的MSSQL哦?那自己改一下 AS 後面的欄位名或加單引號

不要用 AS 中文欄位名稱(你的版本多老了啊?我在SQL2014正常

https://ithelp.ithome.com.tw/upload/images/20190711/20117954K25P87oDqC.jpg

0
小魚
iT邦大師 1 級 ‧ 2019-07-11 11:33:36

這個資料表設計有問題吧,
從一開始就應該要設計成狀態了 XD

我要發表回答

立即登入回答