首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

- SELECT失败时的teradata SQL案例。3771: CASE表达式的WHEN子句中存在非法表达式

Teradata SQL是一种关系型数据库管理系统,它提供了强大的数据处理和分析能力。在Teradata SQL中,CASE表达式用于根据条件执行不同的操作。

在这个案例中,我们假设有一个名为"employees"的表,其中包含员工的信息,包括员工ID、姓名、年龄和工资。我们想要查询工资大于10000的员工,并根据工资的不同范围进行分类。

以下是一个使用CASE表达式的Teradata SQL查询示例:

代码语言:txt
复制
SELECT 
  employee_id,
  employee_name,
  CASE 
    WHEN salary > 20000 THEN '高薪水'
    WHEN salary > 15000 THEN '中薪水'
    WHEN salary > 10000 THEN '低薪水'
    ELSE '未知'
  END AS salary_range
FROM employees
WHERE salary > 10000;

在上述查询中,我们使用了CASE表达式来创建一个名为"salary_range"的新列。根据工资的不同范围,我们将员工分为"高薪水"、"中薪水"、"低薪水"和"未知"四个类别。只有工资大于10000的员工会被包含在结果中。

这个查询的结果将包含员工的ID、姓名以及根据工资范围分类后的结果。

推荐的腾讯云相关产品:腾讯云数据库TDSQL,它是腾讯云提供的一种高性能、高可用的云数据库服务,支持多种数据库引擎,包括Teradata SQL。您可以通过以下链接了解更多关于腾讯云数据库TDSQL的信息:腾讯云数据库TDSQL产品介绍

请注意,以上答案仅供参考,实际情况可能因环境和需求而异。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

T-SQL基础(一)之简单查询

谓语只关心匹配行是否存在,而不管SELECT中指定的属性,就像整个SELECT子句是多余的一样。...如,WHERE子句中的多个表达式的计算并没有确定的顺序。 CASE...WHEN... CASE表达式是标量表达式,返回一个符合条件的值。注意,CASE是表达式,不是语句,与COUNT类似。...CASE表达式有两种使用方式: CASE后面带有列名 这种情况下,WHEN子句中只能使用标量或返回标量的表达式,这种形式称为简单格式。...CASE后面不带列名 这种情况下,WHEN子句中只能使用逻辑表达式,这种形式称为搜索格式。...通常单表查询仅需一句SELECT语句即可,简单且数据库 联接查询 INNER JOIN、LEFT JOIN、RIGHT JOIN、CROSS JOIN 子查询 SQL可以在一个查询语句中编写另外一个查询语句

4.2K20

【SQL】作为前端,应该了解的SQL知识(第三弹)

视图 使用表时,会将数据保存在存储设备(硬盘上) 而使用视图时,并不会将数据保存在存储设备上,也不会将数据保存在任何地方。...缺点:多重视图会降低 SQL 的性能 视图的限制 定义视图时,不能使用order by 子句 视图更新的限制 SELECT子句中未使用DISTINCT FROM 子句中只有一张表 未使用GROUP...注意: 在Oracle的FROM子句中,不能使用AS 尽量避免多层子查询 执行顺序: 内层的子查询 ——> 外层的查询 标量子查询 就是返回一行一列的子查询 一般情况下,标量子查询的 返回值 可以用在...CASE表达式 Oracle中的DECODE就是CASE … WHEN … 语句 条件分支语句。...CASE WHEN 表达式> THEN 表达式> WHEN 表达式> THEN 表达式> WHEN 表达式> THEN 表达式> . . .

16920
  • Hive3查询基础知识

    [WHERE expression]; 根据可选WHERE子句中指定的条件,UPDATE语句可能会影响表中的每一行。WHERE子句中的表达式必须是Hive SELECT子句支持的表达式。...子查询是内部查询中的SQL表达式,它将结果集返回到外部查询。从结果集中,评估外部查询。外部查询是包含内部子查询的主要查询。WHERE子句中的子查询包含查询谓词和谓词运算符。谓词是计算为布尔值的条件。...子查询限制 为了有效地构造查询,您必须了解WHERE子句中的子查询的限制。 • 子查询必须出现在表达式的右侧。 • 不支持嵌套子查询。 • 单个查询只能有一个子查询表达式。...CTE是从在WITH子句中指定的简单查询获得的一组查询结果,该子句紧随SELECT或INSERT关键字。CTE仅存在于单个SQL语句的范围内,而不存储在metastore中。...TABLE s1 SELECT *; 转义非法标识符 当您需要在列或分区名称中使用保留字、特殊字符或空格时,请将其括在反引号(`)中。

    4.7K20

    学习SQL【8】-谓词和CASE表达式

    语句中使用了子查询,那么即使数据发生了变更,还可以继续使用同样的SELECT语句。...表达式 什么是CASE表达式 CASE表达式是一种进行运算的功能,它是SQL中最重要的功能之一。...ELSE 表达式> END CASE表达式会从最初的WHEN子句中的“ 表达式> ”进行求值运算。...所谓求值,就是要调查该表达式的真值是什么,如果结果为真(TRUE),那么就返回THEN子句中的表达式,CASE表达式的执行到此为止。如果结果不为真,那么就跳转到下一条的WHEN子句的求值之中。...CASE表达式的使用方法 咱们用一个例子说明: --通过CASE表达式将A~C的字符串加入到商品种类中 SELECT product_name, CASE WHEN product_type = '衣服

    2.3K60

    SQL嵌套查询_sql差集嵌套

    SQL CTE( 公用表表达式 ) 定义语法: with 公用表表达式名称 所涉及的列(非全选) 一个 SELECT 语句,在 AS 之后紧跟。...并不在其定义的语句中调用其自身的 CTE 非递归公用表表达式( CTE )的使用方式和 视图 以及 子查询 一致 递归公用表表达式: 流程控制语句 BEGIN……END...GOTO lable … lable, WAITFOR 语句 WAITFOR 语句可以在某一个时间或某一时间间隔之后执行 SQL 语句,语句块,存储过程等。...’16:00:00′ select * from test01; case 语句 语法: case< 表达式 > when< 条件表达式 1>then< 表达式 1> when...< 条件表达式 2>then< 表达式 2> …… else< 表达式 n> — 简单 Case 函数 CASE sex WHEN ‘1’ THEN ‘ 男 ‘ WHEN

    2.2K20

    Greenplum查询优化揭秘

    “false” 3、简化CASE表达式 CASE WHEN 2+2 = 4 THEN x+1 ELSE 1/0 END = > x + 1 ... not “ERROR:division by zero...内连简单的SQL函数 create function incr4(int) returns int as ‘select $1 + ( 2 + 2 ) ’ LANGUAGE SQL; select incr4...(a) from foo; == > Select a + 4 from foo; 为什么使用内联简单的SQL函数 1、避免SQL函数调用的代价 2、为简化常量表达式提供新的机会 2.1.1.3 提升...IN,EXISTS类型的子链接 子链接是指吃现在表达式中的子查询,通常出现在where或join/on子句中 select * from foo where exists (select 1 from...优化后的内部结构图 2.1.1.4 提升子查询 子查询一般以范围表的方式存在,通常出现在from字句中 select * from foo join (select bar.c from bar

    1.2K31

    SQL进阶-1-case使用

    SQL进阶-1-case语句 认真把SQL语言提升下,选择了日本的一本书籍。...' end -- 搜索 case when sex='1' then '男' when sex='2' then '女' else '其他' end 简单表达式能够写的搜索表达式都能写 注意事项...案例2-数字大小分类 表格同上 需求 将不同的数字按照类别进行分组表示 SQL实现 -- 按照人口数量等级划分 select case when population < 100 then '01'...group by std_id; 新手使用having进行分支,熟练之后可以使用select语句进行分支 总结 case表达式可以写在select子句里时,可以写在聚合函数内部,也可以是外部...能够写列名和常量的位置,都可以使用case语句 case表达式可以写在select、group by、having、where、order by子句中 case表达式是一种表达式,而不是语句,具有更好的可移植性

    74310

    常用SQL语句和语法汇总

    FROM WHERE 表达式>; SQL常用规则2 SQL语句可以使用AS关键字为列设定别名,设定汉字别名时需要使用双引号(’’)括起来 在SELECT语句中可以使用DISTINCT...的形式表现出来 使用GROUP BY 子句时,SELECT子句中不能出现聚合键之外的列名 在GROUP BY子句中不能使用SELECT子句中定义的别名 只有在SELECT子句、ORDER BY子句和HAVING...ORDER BY子句通常写在SELECT语句的末尾 排序键包含NULL时,会在开头或者末尾进行汇总 在ORDER BY子句中可以使用SELECT子句中定义的别名 在ORDER BY子句中可以使用SELECT...CASE 表达式 CASE WHEN 表达式> THEN 表达式> WHEN 表达式> THEN 表达式> WHEN...ELSE 表达式> END SQL常用规则6 谓词就是返回值为真值的函数 通常指定关联子查询作为EXIST的参数 作为EXIST参数的子查询中经常会使用SELECT * CASE表达式中的END不能省略

    3.1K80

    《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(上)

    (7)CASE表达式   ① 简单表达式:将一个值与一组可能的取值进行比较,并返回满足第一个匹配的结果; SELECT productid,productname,categoryid,categoryname...Production.Products;   ② 搜索表达式:将返回结果为TRUE的第一个WHEN逻辑表达式所关联的THEN子句中指定的值。...如果没有任何WHEN表达式结果为TRUE,CASE表达式则返回ELSE子句中出现的值。...非NULL值得表达式返回值为0,因此,它们会排在NULL值(表达式返回1)的前面。如上所示的将CASE表达式作为第一个拍序列,并把region列指定为第二个拍序列。...MSSQL中支持4种类型的表表达式: 3.1 派生表   派生表(也称为表子查询)是在外部查询的FROM子句中定义的,只要外部查询一结束,派生表也就不存在了。

    2K51

    《SQLSERVER2012之T-SQL教程》T-SQL单表查询(二)「建议收藏」

    子句中的可能值列表进行比较。...同时操作 SQL支持一个称作同时操作的概念,意思是出现在同意逻辑处理阶段的所有表达式在同一时间点进行逻辑计算,例如: SELECT col1, col2 FROM dbo.T1 WHERE...遗憾的是,SQL Server不支持短路,它基于标准SQL的同事操作概念,SQL Server可以按任意顺序自由处理WHERE子句中的表达式。...所以如果先执行了col2/col1>2这个表达式,而col1为0,那么就会导致执行失败。 有几种方法可以避免同时操作导致执行失败。...例如,CASE表达式中的WHEN子句的计算顺序是有保证的,可以按如下方式修改: SELECT col1, col2 FROM dbo.T1 WHERE CASE WHEN col1 = 0

    1.8K20

    算法工程师-SQL进阶:强大的Case表达式

    表达式(功能覆盖了简单case,因此更常用) CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END case表达式在书写时的注意事项...END 解析:当使用case表达式时,你要注意,case表达式的结果是一个值。...值在SQL语句中的位置非常灵活,可以放在select、where以及group by等多个地方。 在本题中要注意sql先执行group by,然后最后在执行select。...当sql执行group by时,会根据case设定的分支规则将每一行映射为一个值,映射完成后,在根据映射完的值的种类将每行进行归组;当执行select语句时,每个组的组名是什么呢?...,在select语句中使用了两个case表达式,第一个case表达式是将所有sex!

    2.3K20

    掌握这些SQL面试题再也不怕面试懵逼了

    select 课程号, sum(case when 成绩>=60 then 1 else 0 end) as 及格人数 sum(case when 成绩select 学号, max(case 课程号 when '0001' then 成绩 else 0 end) as '课程号0001', max(case 课程号 when '0002' then 成绩...一般在写SQL时需要注意哪些问题,可以提高查询的效率? 1. select子句中尽量避免使用*,多表连接用*更慢。...2. where子句比较符号左侧避免函数:尽量避免在where条件子句中,比较符号的左侧出现表达式、函数等操作。因为这会导致数据库引擎进行全表扫描,从而增加运行时间。...where 成绩 + 5 › 90 (表达式在比较符号的左侧) 优化方法: where 成绩 › 90 – 5(表达式在比较符号的右侧) 3.

    49441

    如何快速搞定SQL面试题?这5步法给你答案

    为了帮助你更好的理解“5步法SQL解题步骤”,我通过一个案例来说明白。 【案例】用5步法解题:房源评分统计 表1 所示为各城市房源的评分表,表名为“评分表”,含有3个字段:房源号、城市、分数。...找出考点 通过问题拆解,可以发现这个题目是“分区间问题”,考查的SQL 知识是“复杂查询”里多条件判断的case 表达式。 4....“分区间问题”的本质是多条件判断,要想到用SQL 里的case 表达式知识来实现。 case 表达式的用法如下。...在第(1)步的SQL 语句中,每个case 表达式前面加上计数函数count(),用于统计每个区间的房源数量。...组合实现 把前面两个步骤的SQL 语句组合在一起,就是完整代码,如下所示: select count(case when 分数<5 then 房源号 end) as '0-5', count(case

    15610

    《SQL Cookbook》 - 第一章 检索数据

    朋友推荐了一本书《SQL Cookbook》,翻译过来就是《SQL经典实例》,讲的都是SQL编写层面的案例,例如获得随机数、NULL值判断、求中位数、日期计算等,都是日常工作中可能用到的,但是有些知识点可能稍微模糊...在SELECT语句中指定具体的列名,可以确保查询语句不会返回无关的数据。当在整个网络范围内检索数据时,这样做更重要,因为他避免了将时间浪费在检索不需要的数据上。 2....可以为CASE表达式的执行结果取一个别名,让结果集更有可读性。...ELSE子句是可选的,若没有他,对于不满足测试条件的行,CASE表达式会返回NULL, select ename, sal, case when sal <= 2000 then 'UNDERPAID...,但是明显COALESCE函数更加方便、更简洁, select case        when c is not null then c        else 0        end from

    88720

    SQL CASE 表达式

    简单表达式: SELECT CASE city WHEN '北京' THEN 1 WHEN '天津' THEN 2 ELSE 0 END AS abc FROM test 搜索表达式: SELECT...FROM test 只要 SQL 表达式中存在聚合函数,那么整个表达式都聚合了,此时访问非聚合变量没有任何意义。...这个特性可以解决很多实际问题,比如将一些复杂聚合判断条件的结果用 SQL 结构输出,那么很可能是下面这种写法: SELECT CASE WHEN 聚合函数(字段) 符合什么条件 THEN xxx ......'no' END AS abc FROM test 原因是,只要 SQL 中存在聚合表达式,那么整条 SQL 就都是聚合的,所以返回的结果只有一条,而我们期望查询结果不聚合,只是判断条件用到了聚合结果...因为子查询的聚合发生在子查询,而不影响当前父查询,理解了这一点,就知道为什么下面的写法才是正确的了: SELECT CASE WHEN pv > ( SELECT avg(pv) from test )

    81730

    那些年我们写过的T-SQL(上篇)

    本系列包含上中下三篇,内容比较驳杂,望大家耐心阅读: 那些年我们写过的T-SQL(上篇):上篇介绍查询的基础,包括基本查询的逻辑顺序、联接和子查询 那些年我们写过的T-SQL(中篇):中篇介绍表表达式、...之所以说这部分重要,不知道大家遇到过自己给字段起的别名在where中不能使用的情况没有,那是因而where执行时,select还未执行,那么select中给字段其的别名还不存在好,但在order by字句中就可以正常使用...尤其需要注意的是,CASE具有"简单"和"搜索"两种格式,后者非常的灵活 简单格式: SELECT studentid, CASE score WHEN 59 THEN 'Fail' WHEN 60...THEN 'Alive' FROM dbo.testScore 搜索格式: SELECT studentid, CASE WHEN score WHEN score >...技巧性 通过使用CASE表达式来实现,形式上有一些奇怪 SELECT num1, num2 FROM dbo.tableB CASE WHEN num1 = 0 THEN 0 WHEN num1/num2

    3.2K100
    领券