【发布时间】:2012-07-06 00:52:39
【问题描述】:
我正在尝试找出如何编写一个 SQL 语句来获取字符串不是 12 个字符长的字段。如果它们是 10 个字符,我只想获取字符串。
DB2 中有什么函数可以做到这一点?
我想它会是这样的,但我在上面找不到任何东西。select * from table where not length(fieldName, 12)
【问题讨论】:
-
等等 - 你想获取 特定 列('field')包含的数据长度为 10 个字符的 rows,还是你想要获取所有行的 unknown 列,其中列中的所有值(或列名)都是 10 个字符长?
-
我想从 id 号列中获取所有行。有些身份证号码长 10 位,有些是 9 位,有些是 12 位。除了 12 位数字之外,我想要所有的。
-
该列实际上是数字类型,还是您在 Id 中使用数字字符?如果它实际上是一个数字列,只需进行简单的数字比较。如果是包含数字的字符串,请不要有前导零...
-
这是一个文本字段。对不起。只是碰巧它们暂时都是数字的。但是,是的,该字段是文本类型。
-
嗯,一个(当前)只包含数字的自然键 id 字段文本是可以的 - 期望在某些时候您可能有其他字符。我只是不建议允许前导零,因为您的用户可能没有意识到它们的重要性。然而,在一般情况下,大卫的答案应该是可行的。