2016-12-19 5 views
2

ユーザーが自分のWebサイトの管理者であるかどうかを判断するクエリを作成しています。件名がSQL Server Selectステートメント

最初の選択後に「True」または「False」を表示する方法を理解できません。

select count(*) as IsAdmin 
from UserRoles 
where UserID = '1' and RoleID = 1 

IF count is != 0 => True 
ELSE False 

私のIFは、おそらく私が間違って何かを書いているので、おそらく動作しません。 RoleID=1は管理者であることを示します。

答えて

3

使用することは、あなたのIFに存在し、その後、あなたが一定数をチェックしようとしていた別のシナリオでは、あなたがそのように使用することができた場合は

IF(exists(select 1 as IsAdmin from UserRoles where UserID='1' and RoleID = 1)) 
    SELECT 'IS ADMIN' 
ELSE 
    SELECT 'IS NOT ADMIN' 

を返すようにしたいものを/あなたのロジックを続行:

IF(select count(*) as IsAdmin from UserRoles where UserID='1' and RoleID = 1) > 0 
    SELECT 'IS ADMIN' 
ELSE 
    SELECT 'IS NOT ADMIN' 
+0

ありがとうございます!私はすぐにタイマーがstackoverflow上にあるので、私はすぐに受け入れます。 – UserSN

+0

問題はありません@AlexP喜んで助けてください – scsimon

1
select (case when UserID = '1' and RoleID = 1 then 1 else 0 end) as IsAdmin 
from UserRoles 
関連する問題