Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.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 确定DB2文本字符串长度_Sql_Db2 - Fatal编程技术网

Sql 确定DB2文本字符串长度

Sql 确定DB2文本字符串长度,sql,db2,Sql,Db2,我试图找出如何编写SQL语句来获取字符串长度不超过12个字符的字段。我只想抓取字符串,如果它们是10个字符 在DB2中,什么函数可以做到这一点 我想应该是这样的,但我找不到任何东西。 select*from table where not length(字段名,12)这将获取具有10个字符长字符串(在字段名列中)的记录: select * from table where length(fieldName)=10 从类似的问题-添加RTRIM,因为长度将返回列定义的长度。这应该是正确的: s

我试图找出如何编写SQL语句来获取字符串长度不超过12个字符的字段。我只想抓取字符串,如果它们是10个字符

在DB2中,什么函数可以做到这一点

我想应该是这样的,但我找不到任何东西。

select*from table where not length(字段名,12)

这将获取具有10个字符长字符串(在字段名列中)的记录:

 select * from table where length(fieldName)=10
从类似的问题-添加RTRIM,因为长度将返回列定义的长度。这应该是正确的:

select * from table where length(RTRIM(fieldName))=10
更新27.5.2019:可能在较旧的db2版本上,LENGTH函数返回了列定义的长度。在db2 10.5上,我尝试了该函数,它返回的是数据长度,而不是列定义长度:

select fieldname
, length(fieldName) len_only
, length(RTRIM(fieldName)) len_rtrim
from (values (cast('1234567890  ' as varchar(30)) )) 
as tab(fieldName)

FIELDNAME                      LEN_ONLY    LEN_RTRIM
------------------------------ ----------- -----------
1234567890                              12          10
可以使用以下术语来测试这一点:

where length(fieldName)!=length(rtrim(fieldName))

我们主要写以下声明
从表格中选择*长度(ltrim(rtrim(字段))=10

另外请检查:-确定字符串长度有时可能很棘手。等等-是否要获取特定列(“字段”)包含的数据长度为10个字符的行,还是要获取所有行的未知列,其中列中的所有值(或列的名称)10个字符长吗?我想从id号列中获取所有行。有些身份证号码是10位数,有些是9位数,有些是12位数。我想要除12位数字以外的所有数字。该列实际上是数字类型,还是在Id中使用数字字符?如果它实际上是一个数字列,只需进行简单的数字比较。如果它是一个包含数字的字符串,请不要有前导零…它是一个文本字段。很抱歉只是碰巧它们暂时都是数字。是的,这个字段是文本类型的。好吧,一个自然键id字段,文本,它(当前)只包含数字是可以的-期望在某个时候你可能有其他字符。我只是不建议允许前导零,因为您的用户可能没有意识到它们的重要性。然而,在一般情况下,大卫的答案应该是正确的。这就成功了!它得到的是字符串的实际长度,而不是列的长度。谢谢,很好的提示!这是不对的。它将返回字段长度,而不是字符长度。欢迎使用Stackoverflow!!如果你能在回答任何问题之前回答,那就太好了。谢谢。上面的答案是不正确的。这对我有用