1

Companyクエリしたいいくつかの列を持つテーブルがあるシナリオがあります

  1. 名前
  2. IsHighPriority
  3. クーポン(外部キー)

ここで、 High Prioritytrueの場合は(High Priorty)会社名の列の前に配置し、会社に3つ以上のクーポンがある場合は、(Important)会社名の前に配置します。

これを行う方法?よろしくお願いします。

編集

これをすべてSQLビューに追加したい場合は、どうすればよいですか。これをSQLビューに追加しようとすると、エラーが発生するためです。

列1に列名が指定されていないため、ビューまたは関数の作成に失敗しました。

編集#2

このクエリに基づいて会社のクーポンカウントを選択したい

RejectProcessed = 0 and ReviewVerify = 0 and isPublish = 0 and ForSupervisor = 0  

つまり、すべての会社でクーポンの数を取得する場合、これらはCOUPONテーブルにすでに存在するフィールドであるすべてのクーポンにこのクエリを挿入する必要があります。

詳細が必要な場合はお知らせください

これは私がntビューを作成した方法です

  Create view GetCompanyNames as
   SELECT  CASE WHEN COALESCE(b.totalCoupons, 0) > 3 THEN a.Name +'(Important) '
         WHEN IsHighPriority = 1 THEN a.Name +'(High Priority) '
        ELSE a.Name +''
    END  AS CompanyName
  FROM    Company a
    LEFT JOIN
    (
        SELECT  Name, COUNT(*) totalCoupons
        FROM    Company
        GROUP   BY Name
    ) b ON a.name = b.name
4

2 に答える 2

1
SELECT  CASE WHEN COALESCE(b.totalCoupons, 0) > 3 THEN '(Important) '
            WHEN IsHighPriority = 1 THEN '(High Priority) '
            ELSE ''
        END + a.Name AS CompanyName
FROM    Company a
        LEFT JOIN
        (
            SELECT  Name, COUNT(*) totalCoupons
            FROM    Company
            GROUP   BY Name
        ) b ON a.name = b.name
于 2013-03-26T06:53:00.003 に答える
-2

文字列を+演算子で連結できます

select 'a'+'b'

テキスト「ab」を選択します

于 2013-03-26T06:48:40.773 に答える