0

テーブルに日時フィールドがあります。文字列に変換してパラメータとして宣言したい。

たとえば、datetime フィールドが null でない場合は「OPEN」、datetime フィールドが null の場合は「CLOSED」で、パラメータを入力するときにタイプ「OPEN」または「CLOSED」が必要な場合、結果はテーブルにテキストを表示します。

どうやってするか?。

4

2 に答える 2

0

これは私があなたの質問をどのように理解するかです:あなたは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;
于 2012-06-26T05:25:41.837 に答える
0

「パラメーター」の使用に関するあなたの質問には完全には従いませんが、これで必要なもののほとんどが得られることを願っています。

SELECT CASE 
           WHEN [Date_Column] IS NULL THEN 'CLOSED'
           ELSE 'OPEN'
       END
FROM [Your_Table]
于 2012-06-26T04:39:33.530 に答える