SELECT name, CONCAT(Round((population/(SELECT population FROM world WHERE name='Germany'))*100,0),'%') FROM world WHERE continent='Europe'错在哪里,为何结果百分比为0
时间: 2023-12-23 10:06:11 浏览: 61
这条SQL语句有语法错误,应该使用子查询来获取德国的人口数量。正确的语句如下:
```
SELECT name, CONCAT(ROUND((population/(SELECT population FROM world WHERE name='Germany'))*100,0),'%')
FROM world
WHERE continent='Europe'
```
如果你的结果百分比为0,可能是因为除数为0,即德国的人口数量为0,或者人口数量太小导致计算结果被四舍五入为0。你可以尝试将ROUND函数中的第二个参数调整为1或更大的数值来查看实际计算结果。
相关问题
SELECT * FROM table_name WHERE column_name LIKE '%%s%';这样使用对吗
不太对。如果你想在 SQL 语句中使用占位符 %s,并且同时要进行模糊匹配,可以使用 CONCAT 函数:
```
SELECT * FROM table_name WHERE column_name LIKE CONCAT('%', %s, '%');
```
这里的 %s 表示占位符,使用 CONCAT 函数将其与 % 符号拼接起来,形成一个可以进行模糊匹配的字符串。注意,在 Python 中,你需要在执行 SQL 语句前,先将占位符 %s 替换成具体的值。
select concat(ename,'WORKS AS A',job) as msg from emp where deptno =10;
这个SQL语句的作用是从emp表中查询部门号为10的员工的姓名和工作岗位,然后将这两个字段拼接成一个新的字段msg,并将查询结果返回。
其中,concat函数用于将多个字符串连接起来形成一个新的字符串,它的参数可以是一个或多个字符串。在这个查询中,使用concat函数将ename、'WORKS AS A'和job三个字符串连接在一起,中间使用空格进行分隔。
下面是这个查询的完整语句:
```
SELECT CONCAT(ename, ' WORKS AS A ', job) AS msg
FROM emp
WHERE deptno = 10;
```
如果部门号为10的员工的姓名为ALLEN,工作岗位为MANAGER,那么查询结果就会是:
```
ALLEN WORKS AS A MANAGER
```
它是由ename、' WORKS AS A '和job三个字符串拼接而成的。
阅读全文