我想做一个条件,如果看到FLAG_CLOSED = Y,则将值(000000)放入DATE_COMPLETED,如果不是Y,则不执行任何操作
SELECT
"JOB",
"SUFFIX",
"SUFFIX",
"DATE_COMPLETED",
"FLAG_CLOSED",
CASE "DATE_COMPLETED"
WHEN "FLAG_CLOSED"='Y'
THEN "DATE_COMPLETED"='000000'
END "DATE_COMPLETED"
FROM "JOB_OPERATIONS"
我得到的
SQL Execution Error
[LNA][PSQL][SQL Engine]Syntax Error: SELECT
"JOB",
"SUFFIX",
"SUFFIX",
"DATE_COMPLETED",
"FLAG_CLOSED",
CASE "DATE_COMPLETED" WHEN "FLAG_CLOSED" << ??? >> = 'Y' THEN "DATE_COMPLETED" = '000000' END "DATE_COMPLETED"
FROM JOB_OPERATIONS
2条答案
按热度按时间kjthegm61#
您似乎试图更改表中的
DATE_COMPLETED
列。不能使用SELECT语句执行此操作。CASE / WHEN / THEN有助于构造输出。UPDATE语句允许使用DATE_COMPLETED='000000'
等子句更改列。试试这个。
我将大小写计算的输出列命名为
CLOSED_DATE_COMPLETED
,这样它就不会与前面提到的DATE_COMPLETED
列冲突。wgx48brx2#
语法为:
...或:
要根据标志返回
DATE_COMPLETED
的值,可以执行以下操作:请注意,您需要生成一个一致的列类型。如果
DATE_COMPLETED
不是文本,则需要对其进行强制转换。