2016-11-16 7 views
0
SELECT 
    'https://xxxxxx/' + CONVERT(VARCHAR(10), [AnnouncementID]) AS 'URL', 
    [Status] AS 'Code', 
    [Subject] AS 'Text', 
    (CASE 
     WHEN LEN([Subject]) > 500 
      THEN SUBSTRING([Subject], 0, 500) + '...' 
      ELSE [Subject] END) 
    AS 'ShortText' 
FROM 
    [Announcement] 
WHERE 
    [Public] = 1 
    AND [Enable] = 1 
    AND GETDATE() BETWEEN [ActiveFrom] AND [ActiveTo] 
ORDER BY 
    [Status] ASC, [ActiveFrom] ASC 

このクエリを実行しているようなものを返します。変更値

  • クリティカルの場合 - > RED
  • 有効にした場合 - >

YELLOWどのように私は上記の私のクエリ文字列を書き換えることができますか?

+1

期待される結果を投稿しても、あなたは何を私は期待するアウトが有効に変更されることである – TheGameiswar

+0

を使用しているDBMSにタグを付けてください - > YELLOWとクリティカル - > RED。あなたが有効理由についての詳細情報を追加したい場合があります –

+0

値は分単位で打た赤 – TheGameiswar

答えて

1

ユースケースは:

CASE [Status] 
    WHEN 'Enable' then 'YELLOW' 
    WHEN 'Critical' then 'RED' 
END as 'Code' 

又はその値と結合テーブルを使用します。

0

私が正しく理解していれば、 「Enable」と「Critical」の単語をそれぞれYELLOWとREDに変更したいですか?

あなたは、私が本当に構文で助けることはできませんが、大まかな考え方は次のようになります使用しているDBMSどのようなタグ付けされていないとしてあなたは、case文でこれを行うことができます。

SELECT 'https://xxxxxx/' + CONVERT(VARCHAR(10), [AnnouncementID]) AS 'URL', 
Case [Status] 
    when 'Critical' then 'RED' 
    when 'Enable' then 'YELLOW' 
    end AS 'Code' , 
[Subject] AS 'Text', 
(CASE WHEN LEN([Subject]) > 500 THEN SUBSTRING([Subject], 0, 500) + '...' ELSE [Subject] END) AS 'ShortText' 

FROM [Announcement] 

WHERE [Public] = 1 
AND [Enable] = 1 
AND GETDATE() BETWEEN [ActiveFrom] AND [ActiveTo] 

ORDER BY [Status] ASC, [ActiveFrom] ASC 

[状態]が「赤」または場合は、値が

+0

に黄色とクリティカルに変更する必要がありますクエリの場所はそのように! – RDKells

0

this answerをチェック「YELLOW」を表示し、「有効」は、値「緊急」レベルの表示がある場合、それは効果的に言っています。それはthis articleを参照しています。 [コード]の値に基づいて、いくつかのCASE文を追加し、いくつかのマイナーな変更で は、あなたが<td style="color: red;">または<td style="color: yellow;">追加することができます。

私はそれが助けてくれることを願っています!