【发布时间】:2016-03-21 16:23:40
【问题描述】:
如何让这个在 SAS 中工作的 SQL 代码在 POSTGRESQL 中工作。下面是在 SAS 中有效但在 POSTGRESQL 中无效的代码。
newname='Other';
if fullstate='Alaska' then equal_area_id='RAINIER';
if fullstate='Hawaii' then equal_area_id='SHASTA';
if fullstate='California' then equal_area_id='SHASTA';
if fullstate='California' and county in (45 21 7 63 91 57 33 11 10143 47 99 77 67 109 9 5 17 61 115 113 55 97 95 3) then equal_area_id='MENDOCINO';
以下脚本类型在 POSTGRESQL 中有效,但它仅将新字段标记为“TEMECULA”而不是“SHIPROCK”
UPDATE new_counties2
SET newname = CASE
WHEN fullstate = 'Arizona' THEN 'TEMECULA'
WHEN fullstate = 'Arizona' AND county IN ('1', '17', '5', '15', '7') THEN 'SHIPROCK' END
WHERE newname IN ('Other')
这将适用于整个国家,所以我需要以某种方式直接格式化。
【问题讨论】:
-
这不是 SAS SQL - 它看起来确实像一个数据步骤。通常,您通过 Case 语句转换为 SQL。
标签: database postgresql postgis