我试图将IN条件别名为按地区分组状态。在SQL中编写此代码的最佳方法是什么,因为我无法对WHERE子句进行别名?
select state_cd from table
where state_cd in (‘PA’,’NY’,’NJ’,’CT’,’RI’,’MA’,’VT’,’NH’,’ME’) Northeast;
答案 0 :(得分:1)
如果需要,请在列select state_cd as Northeast
上使用别名,但不能在IN
子句中使用。
或者,如果CASE
字段可能有多个不同的变体,请使用state_cd
声明。
答案 1 :(得分:0)
如果您只是需要它以获得可读性,则可以创建该名称的表/视图/ cte并加入它。
with Northeast as (Select 'PA' as state_cd union Select 'NY' union Select 'NY' union Select 'NJ' union Select 'CT' union Select 'RI' union Select 'MA' union Select 'VT' union Select 'NH' union Select 'ME')
select *
from table
join Northeast on table.state_cd = Northeast.state_cd