Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在sql查询中获取子字符串_Sql_Substring_Dbeaver - Fatal编程技术网

如何在sql查询中获取子字符串

如何在sql查询中获取子字符串,sql,substring,dbeaver,Sql,Substring,Dbeaver,我试图从表名中int元素的0-7位置获取子字符串,所以当我插入这个 select substring(column_name,0, 6) as new_name from table_name 我越来越 SQL错误[42883]:错误:函数pg_catalog.substring(bigint, 整数,整数)不存在 提示:没有与给定名称和参数类型匹配的函数。你 可能需要添加显式类型转换 职位:8 org.postgresql.util.PSQLException:错误:函数 pg_目录。子字

我试图从表名中int元素的0-7位置获取子字符串,所以当我插入这个

select substring(column_name,0, 6) as new_name from table_name 
我越来越

SQL错误[42883]:错误:函数pg_catalog.substring(bigint, 整数,整数)不存在

提示:没有与给定名称和参数类型匹配的函数。你 可能需要添加显式类型转换

职位:8

org.postgresql.util.PSQLException:错误:函数 pg_目录。子字符串(bigint、integer、integer)不存在

提示:没有与给定名称和参数类型匹配的函数。你 可能需要添加显式类型转换。职位:8

所以在向varchar(8)添加一些cast之后

明白了吗

SQL错误[42601]:错误:语法错误位于或接近“,”位置:28
org.postgresql.util.PSQLException:错误:语法错误位于或接近“,” 职位:28


我不知道我做错了什么。谢谢。

您可以
int
列转换为
varchar
,然后将
子字符串从
1
转换为
7

select substring(cast([your-column] as varchar(100)),1, 7)
例如:

  declare @a int ='1234567890';
  select substring(cast(@a as varchar(100)),1, 7) as res
输出:

  res 
  1234567
直接转换为文本:

select substring(column_name::text, 1, 7) as new_name
from table_name 

请注意,SQL(与类C语言不同)使用基于1的索引,因此第一个字符是position
1
。与类C语言不同的是,substring的第二个参数是长度(而不是唯一的结束索引)。

函数不是标准化的,每个数据库可以有不同的,并且通常都有。你的标签说的是dbeaver而不是postgrest谢谢你,我缺少的是@。
select substring(column_name::text, 1, 7) as new_name
from table_name