例如,我有简单的SQL:
select product.name from products;
在我的桌子上我有2个产品:轮子,方向盘。
所以我的结果是:
wheel
steering wheel
如果结果超过1个字,如何获得引用结果?:
wheel
"steering wheel"
我尝试使用quote_literal
函数,但遗憾的是结果总是被引用。
quote_literal
就像我只需要常量字符串一样:quoted_literal('steering wheel')
/ quoted_literal('wheel')
答案 0 :(得分:1)
怎么样:
SELECT CASE WHEN (product.name LIKE '% %')
THEN quoted_ident(product.name) ELSE product.name END
FROM products;
答案 1 :(得分:0)
使用它:
SELECT name FROM products WHERE position(' ' in name)= 0
union
SELECT '"'|| name ||'"' FROM products WHERE position(' ' in name)<>0
答案 2 :(得分:0)
select product.NAME,array_length(string_to_array(product.NAME,' '),1) words_cnt -- will return number of words in product.name
from product
并使用以下选择来获得所需的输出
SELECT CASE
WHEN array_length(string_to_array(product.NAME, ' '), 1) > 1
THEN format('''%s''', product.NAME)
ELSE product.NAME
END
FROM product