レコードを削除するために、WHERE文に繰り返し複数行のSQLスクリプトを書き込むことがよくあります。例えばSQL特定の条件を無視する関数
:
SELECT *
FROM tblAll
WHERE Field1 NOT LIKE '%AA%'
AND Field1 NOT LIKE '%BB%'
AND Field1 NOT LIKE '%00'
私はこれらの行を毎回追加する必要はありませんでした場合はミスしにくいだろう。
CREATE FUNCTION [dbo].[ExcludeField1]
(
@Field1 varchar(max),
@Date datetime
)
RETURNS VARCHAR(15) AS
BEGIN
DECLARE @Field1 varchar(15)
DECLARE @Date datetime
SELECT TOP 1 @Field1=Field1 ,@Date=Date
FROM tblAll A
WHERE [email protected]
AND Field1 NOT LIKE '%AA%'
AND Field1 NOT LIKE 'BB%'
AND Field1 NOT LIKE '%00%'
ORDER BY LEN(A.Field1) ASC ;
RETURN @Field1
END
GO
しかし、私は重要な何かが欠けてる感じ:どのように私は私が?:代わりに
SELECT *
FROM tblAll
WHERE Field1 NOT LIKE Function
これを行うために役立つだろう関数を作成することができますこれは私が現在持っているものです。この関数は、私がField1の有効な値と考えるものだけを提供します。今後のスクリプトは次のようにする必要があります。
Field1 = @Field1
どうしますか?