我试图找到一种方法来操作作为查询的一部分返回的值。基本上,如果该值小于255 char,请使用此值,但如果值大于255个字符,则需要返回字符串“value than 255 characters”而不是实际值。我需要实现这一部分SQL查询。感谢任何反馈。谢谢杰伊
答案 0 :(得分:1)
假设SQL Server,请尝试使用LEN
函数并结合CASE
:
SELECT
CASE WHEN LEN(StringColumn) > 255
THEN 'value more than 255 characters'
ELSE StringColumn
END As MyColumnName
FROM MyTable
示例sqlfiddle:http://www.sqlfiddle.com/#!6/e0508/1/0
编辑:如果您使用Oracle作为代码建议,而不是LEN
,请使用LENGTH
:
SELECT
CASE WHEN LENGTH(StringColumn) > 255
THEN 'value more than 255 characters'
ELSE StringColumn
END As MyColumnName
FROM MyTable
示例sqlfiddle:http://www.sqlfiddle.com/#!4/9bc74/2/0
答案 1 :(得分:1)
以下CASE
模式适用于大多数系统:
SELECT
CASE WHEN LENGTH(someCol) <= 255
THEN someCol
ELSE "value more than 255 characters"
END AS ColName
FROM
TableName
请注意,字符串函数因数据库软件而异。
见:
CHARACTER_LENGTH
for Mysql ,( fiddle example )LEN
适用于SQL Server 或LENGTH
for Oracle 答案 2 :(得分:0)
您可以使用LEN()
函数来确定字符串的长度。然后使用CASE
条件结构来确定要返回的值。