Cim*_*ity 18 sql database database-design
目标是使用数字表示的char值替换SQL查询中返回的整数值.例如:
标记为"Sport"的表属性定义为1-4之间的整数值.1 =篮球,2 =曲棍球等.下面是数据库表,然后是所需的输出.
数据库表:
Player Team Sport
--------------------------
Bob Blue 1
Roy Red 3
Sarah Pink 4
Run Code Online (Sandbox Code Playgroud)
期望的输出:
Player Team Sport
------------------------------
Bob Blue Basketball
Roy Red Soccer
Sarah Pink Kickball
Run Code Online (Sandbox Code Playgroud)
将这些整数值转换为String值的最佳做法是什么?使用SQL在传递给程序之前转换值?使用脚本语言来改变程序中的值?改变数据库设计?
Ale*_*nov 23
数据库应该保存这些值,您应该连接到另一个包含该数据的表.
所以你应该有一张桌子,上面写着一份人名单
ID名称FavSport
1 Alex 4
2 Gnats 2
然后另一张桌子上有一份运动清单
ID Sport
1 Basketball
2 Football
3 Soccer
4 Kickball
然后你会在这些表之间进行连接
select people.name, sports.sport
from people, sports
where people.favsport = sports.ID
Run Code Online (Sandbox Code Playgroud)
哪会让你回来
名称Sport
Alex Kickball
Gnat Football
您也可以使用案例陈述,例如.只需使用上面的人员表就可以写出类似的内容
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
Run Code Online (Sandbox Code Playgroud)
但这当然不是最佳做法.
小智 10
MySQL有一个CASE声明.以下适用于SQL Server:
SELECT
CASE MyColumnName
WHEN 1 THEN 'First'
WHEN 2 THEN 'Second'
WHEN 3 THEN 'Third'
ELSE 'Other'
END
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27303 次 |
| 最近记录: |