如何选择列的行,使行大小为<= 5?有没有一个可以在大多数/所有数据库上工作的查询?
例如:id,first_name
仅选择名字超过10个字符的人员。他们的名字太长了?
发布于 2013-06-12 19:51:18
如果您一定要使用特定的RDBMS,那么解决方案就很简单。
Use the LENGTH function.根据您的数据库,长度函数可以是LEN、Length、CarLength。只要在谷歌上搜索一下就行了。
根据你的问题
如何选择列的行,使行大小为<= 5?有没有一个可以在大多数/所有数据库上工作的查询?
解决方案可以是
SELECT * FROM TableName WHERE LENGTH(name) <= 5如果你想要的东西可以与几乎所有的数据库一起工作,我假设你想要获取的字符串的长度是非常小的。例如5个或8个字符,那么您可以使用下面这样的内容
SELECT *
FROM tab
WHERE
colName LIKE ''
OR colName LIKE '_'
OR colName LIKE '__'
OR colName LIKE '___'
OR colName LIKE '____'
OR colName LIKE '_____'这几乎适用于所有主要的DBMS。
请参见示例:
发布于 2013-06-12 17:42:05
假设您想要以字符为单位的长度,则函数名称随RDBMS而异;
MySQL:CHAR_LENGTH()。
Oracle:LENGTH()。
SQL Server:LEN()。
PostgreSQL:CHAR_LENGTH() or LENGTH()。
SQLite:LENGTH()。
如果你想要以字节为单位的长度,那么它就是;
MySQL:LENGTH()。
Oracle:LENGTHB()。
SQL Server:DATALENGTH()。
PostgreSQL:OCTET_LENGTH()。
例如,在MySQL中选择名称长度超过10个字符的所有行;
SELECT * FROM myTable WHERE CHAR_LENGTH(name) > 10;发布于 2013-06-12 17:33:48
在sql servers中,您可以使用len函数。例如
SELECT * FROM people WHERE LEN(firstname) > 10其中people是表名。
在mysql中,该函数被称为"Length“而不是len。
https://stackoverflow.com/questions/17062065
复制相似问题