回答

收藏

SQL选择用字符串代替整数

技术问答 技术问答 579 人阅读 | 0 人回复 | 2023-09-14

目标用数字表示char值替换SQL查询中返回的整数值。
" F$ C$ q) l( `7 Q标记为端口的表属性定义为1-4之间的整数。1 =篮球,2 =曲棍球,等等。下面是数据库表,然后是所需的输出。
3 P$ x5 l5 y+ a$ {1 H, a* t数据库表:+ T4 g. v3 y, s- X
Player     Team     Sport--------------------------Bob        Blue     1Roy        Red     3Sarah      Pink     4所需输出:% X5 i; ~% F& J4 C3 m- o8 r9 ^, u
Player     Team     Sport------------------------------Bob        Blue     BasketballRoy        Red      SoccerSarah      Pink     Kickball将这些整数值转换为String值的最佳实践是什么?在传输到程序之前使用SQL转换值?用脚本语言更改程序中的值?更改数据库设计?
: H- y, r% F; N8 v                                                               
! D; w: v  {% I6 y    解决方案:                                                                / u+ h( d' B6 q3 a# `
                                                                这些值应该保存在数据库中,您应该执行连接到另一个包含数据的表的操作。
! M6 [5 h( V+ R# W! j" ~所以你应该有一张写着一个人名单的桌子) r/ P' U) C- Q& p, e1 M4 L
ID Name FavSport% |0 V$ E* L- B0 J$ }- x$ t. U% z
1 Alex 4
2 r' ?6 ~" n( }/ @* d+ u9 P2 Gnats 2  @2 G$ x& B6 l. R" y1 R7 }  B' v6 c
然后是另一个表,上面列出了运动
: o* F2 l' T* X* K0 p' q# }5 U  gID Sport7 G8 C% H8 K# [& t
1 Basketball
* ?* W" R1 Q( m' c0 s. L2 Football
! b3 t, V9 s' l- B) B3 Soccer6 h  a# a+ p3 V2 y
4 Kickball: P6 M) [/ ]$ ~  @: M& V) ~
然后你将在这些表之间连接) `# w$ N+ N# E0 {
select people.name,sports.sport from people,sports where people.favsport = sports.ID会给你回来的
+ G7 X6 M7 Q! n/ d! S( q2 W: {Name Sport
; J4 }6 i5 X. S* nAlex Kickball
5 Z$ s- X% V+ oGnat Football8 f: s. a7 j( H% e
也可以使用案例声明。只需从上面使用人表,即可编写以下内容。: X6 b$ D& ?' o5 I; _, ~/ k
select name,       case          when favsport = 1 then 'Basketball     when favsport = 2 then 'Football     when favsport = 3 then 'Soccer     else 'Kickball          end as "Sport" from people但这当然不是最好的练习。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则