select * from User where 1=1
and (case when User.部門='銷售部' then Table.用戶ID='001'
else Table.用戶ID<>NULL end );
這個sql的要求是,
銷售部門只可以查看自己賬號的資訊,如果部門為'銷售部門',則指定傳進來的用戶ID[比如'001']為條件;
其他部門可以查看所有用戶資訊,非'銷售部門'則查看所有查詢結果。
如果我直接寫 and Table.用戶ID='001' 是沒問題,但是用了case when就會提示'=' 附近有語法錯誤,這是為啥咧?是我語法有啥問題嗎?
因為是萌新 ,也是才知道這個網站不久,剛申請的賬號,積分不多,誠心求問,在此謝過了!
uj5u.com熱心網友回復:
樓主你們的欄位可以是中文的嗎uj5u.com熱心網友回復:
where 后面可以用case 但是,也得 A=B 是等式uj5u.com熱心網友回復:
不是欄位是中文的,是原句太長,我簡略寫了,欄位名字長的也用中文簡化了uj5u.com熱心網友回復:
呃……是啥意思?可以說得清晰一些嗎
uj5u.com熱心網友回復:
你登錄的時候是以用戶ID登錄 還是以部門ID登錄?uj5u.com熱心網友回復:
用戶,只是說查詢資訊的時候會判斷一下,如果這個用戶是銷售部門的,就要用自己的用戶ID作為查詢條件
uj5u.com熱心網友回復:
then 后,只能是回傳的內容,不能是判斷或者賦值,也就是說then后,不能這樣用=號。uj5u.com熱心網友回復:
尷尬了,那請問有什么判斷的方法推薦嗎?
uj5u.com熱心網友回復:
就是case when then else end 看成,查詢出來的一個值,然后 判斷運算式 再跟 你的值轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/76692.html
標籤:MySQL
上一篇:Exception in thread "main" java.sql.SQLException: Access denied for user 'root'@
