case when中写in区分大小写吗?
时间: 2023-11-04 21:51:15 浏览: 35
在一般情况下,SQL的CASE WHEN语句中的IN操作符是不区分大小写的。这意味着在比较时,不会考虑所比较的值的大小写。
例如,以下查询将返回匹配的结果,无论它们的大小写是否一致:
```sql
SELECT column_name
FROM table_name
WHERE column_name IN ('value1', 'Value2', 'VALUE3');
```
然而,具体的行为还取决于数据库管理系统(DBMS)的设置。有些DBMS可以通过设置区分大小写来更改默认行为。因此,如果你使用的是特定的DBMS,请查阅其文档以了解其行为。
相关问题
mysql8.0.30 如何查看数据库表名是否区分大小写
在MySQL 8.0.30中,可以通过查询数据库的`information_schema`信息模式来确定数据库的表名是否区分大小写。具体步骤如下:
1. 首先,连接到MySQL数据库服务器。可以使用以下命令连接到MySQL服务器:
```mysql
mysql -u username -p
```
在上面的命令中,`username`是您的MySQL用户名。
2. 然后,选择要检查的数据库。例如,假设我们要检查的数据库是`mydatabase`,可以使用以下命令选择该数据库:
```mysql
use mydatabase;
```
3. 接下来,执行以下查询语句来查看数据库表名的大小写敏感性:
```mysql
SELECT TABLE_NAME, CASE WHEN LOWER(TABLE_NAME) = UPPER(TABLE_NAME) THEN 'Case Insensitive' ELSE 'Case Sensitive' END AS CaseSensitivity
FROM information_schema.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND TABLE_SCHEMA = 'mydatabase';
```
在上述查询中,将`mydatabase`替换为您要检查的实际数据库名称。
4. 执行上述查询后,将显示数据库中所有表名以及它们的大小写敏感性。如果显示为“Case Insensitive”,则表示表名不区分大小写;如果显示为“Case Sensitive”,则表示表名区分大小写。
通过上述步骤,您可以在MySQL 8.0.30中检查数据库表名是否区分大小写。
输入一个MIN,AVG,MAX,COUNT无论大小写都要把emp的sal值打印出来
您可以使用以下 SQL 查询语句来实现您的需求:
```sql
SELECT
CASE
WHEN UPPER('min') = 'MIN' THEN MIN(sal)
WHEN UPPER('avg') = 'AVG' THEN AVG(sal)
WHEN UPPER('max') = 'MAX' THEN MAX(sal)
WHEN UPPER('count') = 'COUNT' THEN COUNT(sal)
END AS result
FROM emp;
```
这个查询语句中,我们使用了 CASE WHEN 语句来根据输入的字符串参数,选择不同的聚合函数。然后,我们将结果命名为 result 并从 emp 表中查询 sal 字段的值。注意,我们使用 UPPER 函数将字符串转换为大写字母,以便在比较时不区分大小写。