我在Teradata中有一个查询。我想添加一个可能是VARCHAR的附加列。 应该说明所选记录是偶数还是奇数
select id, name, CASE newColumn WHEN --- ???
from my table
喜欢这个
id name newColumn
1 asdf odd
2 ts df even
32 htssdf odd
4 asdfsd even
23 gftht odd
我该怎么做
答案 0 :(得分:2)
根据您的示例,我无法告诉您如何对结果进行排序。您需要定义排序顺序。我们假设你会根据id
数字来做。
SELECT id, name,
ROW_NUMBER() OVER(ORDER BY id) row_id,
CASE WHEN ROW_NUMBER() OVER(ORDER BY id) MOD 2 = 0 THEN 'Even' ELSE 'Odd' END newColumn
FROM my table
row_id
根据升序排序的id
字段逐步分配。然后使用MOD
函数确定在将数字除以值后是否有余数(在本例中为2)。结果如下所示:
id name row_id newColumn
1 asdf 1 Odd
2 ts df 2 Even
4 asdfsd 3 Odd
23 gftht 4 Even
32 htssdf 5 Odd