加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

tsql – 在哪个条款或替代选项中使用别名?

发布时间:2020-12-12 16:36:41 所属栏目:MsSql教程 来源:网络整理
导读:如何让这个工作,它的工作没有Where条款,否则与Where子句,我得到明显的错误,但这基本上是需要做的,任何人都知道如何处理这个? select ID,Name,case T.N when 1 then City1 when 2 then City2 when 3 then City3 end as City,case T.N when 1 then State1 when
如何让这个工作,它的工作没有Where条款,否则与Where子句,我得到明显的错误,但这基本上是需要做的,任何人都知道如何处理这个?
select ID,Name,case T.N 
         when 1 then City1
         when 2 then City2
         when 3 then City3
       end as City,case T.N 
         when 1 then State1
         when 2 then State2
         when 3 then State3
       end as State
from YourTable
  cross join (values(1),(2),(3)) as T(N)

    Where City is NOT Null

解决方法

您不能在WHERE子句中使用别名.重复表达式(凌乱)或将SELECT放在子查询中,然后将WHERE子句放在外部查询中:
SELECT Id,City,State
FROM
(
     SELECT
         ID,CASE T.N 
             WHEN 1 THEN City1
             WHEN 2 THEN City2
             WHEN 3 THEN City3
         END AS City,CASE T.N 
             WHEN 1 THEN State1
             WHEN 2 THEN State2
             WHEN 3 THEN State3
         END AS State
     FROM YourTable
     CROSS JOIN (VALUES(1),(3)) AS T(N)
) T1
WHERE City IS NOT NULL

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读