如何在SQL中连接字符串

时间:2013-03-26 06:46:17

标签: sql sql-server sql-server-2008

我有一个场景,其中我有一个表Company,其中包含一些我要查询的列

  1. 姓名
  2. IsHighPriority
  3. 优惠券(外键)
  4. 现在,如果High Priority为真,我想将(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
    

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:-2)

您可以使用+运算符

连接字符串
select 'a'+'b'

选择文字'ab'