我试图在NetSuite保存的搜索中编写SQL查询,如果满足某些条件,则返回文本值,如果不满足,则移至下一个CASE WHEN语句。这是我所拥有的:L
CASE WHEN {shipstate} IN ('AK','ID','MT','OR','WA') THEN 'Northwest'
ELSE CASE WHEN {shipstate} IN ('CA','HI','NV','AZ') THEN 'West'
ELSE CASE WHEN {shipstate} IN ('CO','NM','UT','WY') THEN 'Rockies'
ELSE CASE WHEN {shipstate} IN ('AR','KS,'LA','OK','TX') THEN 'SO Central'
ELSE CASE WHEN {shipstate} IN ('IN','KY','MI','OH') THEN 'Great Lakes'
ELSE CASE WHEN {shipstate} IN ('IA','IL','MN','MO','NE','ND','SD','WI') THEN 'Midwest'
ELSE CASE WHEN {shipstate} IN ('CT','MA','ME','NH','RI','VT') THEN 'Northeast'
ELSE 'Southeast'
END END END END END END END
Run Code Online (Sandbox Code Playgroud)
我不确定是否在错误的位置插入了ENDS,但是我确实早先使用了2个CASE WHEN语句。任何帮助,将不胜感激。
when在case语句中可以有多个子句,因此只需要一个case和一个end,就像这样:
CASE
WHEN {shipstate} IN (
'AK','ID','MT','OR','WA'
) THEN 'Northwest'
WHEN {shipstate} IN (
'CA','HI','NV','AZ'
) THEN 'West'
WHEN {shipstate} IN (
'CO','NM','UT','WY'
) THEN 'Rockies'
WHEN {shipstate} IN (
'AR','KS','LA','OK','TX'
) THEN 'SO Central'
WHEN {shipstate} IN (
'IN','KY','MI','OH'
) THEN 'Great Lakes'
WHEN {shipstate} IN (
'IA','IL','MN','MO','NE','ND','SD','WI'
) THEN 'Midwest'
WHEN {shipstate} IN (
'CT','MA','ME','NH','RI','VT'
) THEN 'Northeast'
ELSE 'Southeast'
END
Run Code Online (Sandbox Code Playgroud)
顺便说一句,您忘记了'您的IN情况之一。