--HAVING句を使ってidに重複のあるデータのみ取得する。
--概要・・・
--①id ごとに件数を集計する。(GROUP BY)
--②集計した結果が1より大きいものを選択する。(HAVING)
--テーブルtbl_dataの構成例
--[id] AS int
--[data] AS varchar(50)
SELECT [id]
FROM [tbl_data]
GROUP BY [id]
HAVING COUNT(*) > 1
2008年7月30日水曜日
2008年7月23日水曜日
【Transact-SQL】引数で値を返すストアドプロシージャの作成
--引数で値を返すストアドプロシージャの作成
CREATE PROCEDURE st_get_output_data
(
@inArg1 varchar(16)
,@outArg1 varchar(32) OUTPUT
)
AS
BEGIN
SET @outArg1='@inArg1 is ' + @inArg1
RETURN 0
END
--ストアドプロシージャの実行
DECLARE @RC int
DECLARE @inArg1 varchar(16)
DECLARE @outArg1 varchar(32)
SET @inArg1 = 'test data'
EXECUTE @RC = [test].[dbo].[st_get_output_data]
@inArg1
,@outArg1 OUTPUT
SELECT @outArg1
--実行結果
--@inArg1 is test data
CREATE PROCEDURE st_get_output_data
(
@inArg1 varchar(16)
,@outArg1 varchar(32) OUTPUT
)
AS
BEGIN
SET @outArg1='@inArg1 is ' + @inArg1
RETURN 0
END
--ストアドプロシージャの実行
DECLARE @RC int
DECLARE @inArg1 varchar(16)
DECLARE @outArg1 varchar(32)
SET @inArg1 = 'test data'
EXECUTE @RC = [test].[dbo].[st_get_output_data]
@inArg1
,@outArg1 OUTPUT
SELECT @outArg1
--実行結果
--@inArg1 is test data
【Transact-SQL】複数行を返すテーブル値関数を作成する
--複数行を返すテーブル値関数を作成する
CREATE FUNCTION tfn_get_table_data
(
@inID AS int
)
RETURNS @wk TABLE
--戻り値のテーブル定義
(
outID int
)
AS
BEGIN
--条件式(IF,ELSE)、WHILE文も使うことが出来る。
--呼出元に返す値をテーブルにINSERTする。
INSERT INTO @wk(outID)VALUES(@inID)
--処理の最後はRETURNで終了させる。
RETURN
END
CREATE FUNCTION tfn_get_table_data
(
@inID AS int
)
RETURNS @wk TABLE
--戻り値のテーブル定義
(
outID int
)
AS
BEGIN
--条件式(IF,ELSE)、WHILE文も使うことが出来る。
--呼出元に返す値をテーブルにINSERTする。
INSERT INTO @wk(outID)VALUES(@inID)
--処理の最後はRETURNで終了させる。
RETURN
END
登録:
投稿 (Atom)