gpt4 book ai didi

sql - ORDER BY 取决于列类型

转载 作者:行者123 更新时间:2023-11-29 11:31:09 28 4
gpt4 key购买 nike

我的表格如下:

a | b
-----
1 | a
2 | b

在我的查询中,我想根据列的类型更改 order by 子句。

有点像

get_data($order_by_column) {

....
ORDER BY
CASE
WHEN is_numeric($order_by_column) THEN $order_by_column
ELSE CHAR_LENGTH($order_by_column)
END
}

我检查过,似乎很难像上述查询那样动态确定列类型。实现这一目标的替代方案(或替代方案)是什么?

最佳答案

您可能对 pg_typeof() 感兴趣:

ORDER BY
CASE pg_typeof($order_by_column)
WHEN 'integer'::regtype THEN $order_by_column
-- WHEN 'text'::regtype THEN ...
-- WHEN 'boolean'::regtype THEN ...
ELSE length($order_by_column)
END

请注意,CASE 语句的分支需要返回匹配的类型,这里恰好是这种情况,因为 $order_by_columnlength($order_by_column ) 都返回 integer

更多关于 object identifier types like regtype in the manual .

查找所有注册类型:

SELECT * from pg_type

再次,更多关于pg_type in the manual .

关于sql - ORDER BY 取决于列类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13224164/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com