0

机がある:

ID   Name   Rank
1    X       Professor
2    X       Principal
3    X       Term Prof
4    X       assistant

私が欲しいのは、入力に応じて最後の教授ランクまたは助手ランクを選択するストアド プロシージャを作成することです。ストアド プロシージャの形式は次のとおりです。

create procedure proc_name(@includeassistant varchar(3))

end

includeassistant が「yes」の場合、assistant の場合、最後の行を表示する必要があります。include assistant が no の場合、Term prof 行を指定する必要があります。

4

2 に答える 2

1

このように使用できます

create procedure proc_name(@includeassistant varchar(3))
AS
BEGIN
  IF @includeassistant='YES'
     SELECT   * FROM dbo.[table] where [RANK]='assistant'
  ELSE 
     SELECT   * FROM dbo.[table] where [RANK]='Term Prof'
END


--- OR 

create procedure proc_name(@includeassistant varchar(3))
AS
BEGIN
  SELECT   * 
  FROM dbo.[table] 
  WHERE [RANK]=CASE WHEN @includeassistant='YES' THEN 'assistant' ELSE 'Term Prof' END
END
于 2012-11-05T23:58:58.587 に答える
1

「最後の教授ランク」とは何を意味するのだろうと思いますが、とにかくLASTT-SQLのような機能はありません。しかし、これを試すことができます(それが であると仮定しIDますIDENTITY):

create procedure proc_name
@includeassistant varchar(3)
AS
SET NOCOUNT ON

SELECT TOP 1 ID, Name, Rank
FROM tbl
WHERE (@includeassistant='YES' AND Rank='Assistant')
      OR (@includeassistant='NO' AND Rank='Professor')
ORDER BY ID DESC
于 2012-11-06T00:09:42.693 に答える