テーブルに日時フィールドがあります。文字列に変換してパラメータとして宣言したい。
たとえば、datetime フィールドが null でない場合は「OPEN」、datetime フィールドが null の場合は「CLOSED」で、パラメータを入力するときにタイプ「OPEN」または「CLOSED」が必要な場合、結果はテーブルにテキストを表示します。
どうやってするか?。
テーブルに日時フィールドがあります。文字列に変換してパラメータとして宣言したい。
たとえば、datetime フィールドが null でない場合は「OPEN」、datetime フィールドが null の場合は「CLOSED」で、パラメータを入力するときにタイプ「OPEN」または「CLOSED」が必要な場合、結果はテーブルにテキストを表示します。
どうやってするか?。
これは私があなたの質問をどのように理解するかです:あなたは2つの固定値を受け入れる文字列パラメーターを持つクエリが必要です'OPEN'
または、および1つをテーブル内'CLOSED'
の特定の列の非NULL値と一致させ、もう1つをNULL値と一致させたいdatetime
同じ列。また、その列の値をそのまま'OPEN'
または'CLOSED'
それに応じて表示することも必要です。
それが正しければ、次のことを試すことができます。
DECLARE @QueryParam varchar(20);
SET @QueryParam = 'OPEN';
SELECT *
FROM (
SELECT
OpenOrClosed = CASE WHEN DateTimeColumn IS NULL THEN 'CLOSED' ELSE 'OPEN' END,
other columns as necessary
FROM yourtable
) s
WHERE OpenOrClosed = @QueryParam;
副選択をビューとして書き直すことも検討してください。
CREATE VIEW YourTableView
AS
SELECT
OpenOrClosed = CASE WHEN DateTimeColumn IS NULL THEN 'CLOSED' ELSE 'OPEN' END,
other columns as necessary
FROM yourtable
次に、そのビューから選択します。
DECLARE @QueryParam varchar(20);
SET @QueryParam = 'OPEN';
SELECT *
FROM YourTableView
WHERE OpenOrClosed = @QueryParam;
「パラメーター」の使用に関するあなたの質問には完全には従いませんが、これで必要なもののほとんどが得られることを願っています。
SELECT CASE
WHEN [Date_Column] IS NULL THEN 'CLOSED'
ELSE 'OPEN'
END
FROM [Your_Table]