回答

收藏

SQL选择用字符串代替整数

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

目标用数字表示char值替换SQL查询中返回的整数值。
; ?; [, D( e- Z$ T# \$ a! i标记为端口的表属性定义为1-4之间的整数。1 =篮球,2 =曲棍球,等等。下面是数据库表,然后是所需的输出。' f+ K4 i2 f% R: b8 z7 {
数据库表:
% v* D$ R% i* _: PPlayer     Team     Sport--------------------------Bob        Blue     1Roy        Red     3Sarah      Pink     4所需输出:2 i+ H+ B) i; B3 ?% B) f
Player     Team     Sport------------------------------Bob        Blue     BasketballRoy        Red      SoccerSarah      Pink     Kickball将这些整数值转换为String值的最佳实践是什么?在传输到程序之前使用SQL转换值?用脚本语言更改程序中的值?更改数据库设计?) T- Q% n* Z9 f3 L/ ?
                                                                  O$ n% B4 m  b% x5 A1 ^9 A) q
    解决方案:                                                                6 h$ l8 U' x! @3 T& W! Z) M( z4 p
                                                                这些值应该保存在数据库中,您应该执行连接到另一个包含数据的表的操作。
! t+ _/ \" V' L, p, V) H所以你应该有一张写着一个人名单的桌子
2 n# [& G% R% [ID Name FavSport7 {+ e1 o; r/ I5 O
1 Alex 4
% `# c! ]; [+ W1 A2 Gnats 2
) O7 U3 s, j# L' Q6 i然后是另一个表,上面列出了运动
7 ^5 y" e1 o' \1 G6 k6 WID Sport. V# M6 I; t% _5 R* z- J, i+ K( u
1 Basketball0 S* v3 w$ e4 k/ M, C
2 Football
- U9 @. v0 Y( k- }3 ^3 p. ?  Y3 Soccer
7 a0 a5 j0 A5 @1 f2 b3 }% d4 Kickball: K0 w0 L9 ~$ t# r5 Q- F
然后你将在这些表之间连接5 O7 t+ t$ a4 z. Z9 Y
select people.name,sports.sport from people,sports where people.favsport = sports.ID会给你回来的
. R7 F+ c4 f* kName Sport
. ]- T$ F0 D! a  b. `Alex Kickball1 P# Y* Y: w( c: z3 |6 }* v$ ~+ ~9 i
Gnat Football# T+ w) D8 p5 ]7 ?% O. A
也可以使用案例声明。只需从上面使用人表,即可编写以下内容。
3 q2 }% t7 n- |5 ~/ v; \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但这当然不是最好的练习。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则