SQL 映射到两个表之间的新值
当尝试在 SQL 2008 环境中将 TableA 的值复制到 TableB 时,我尝试有条件地将某些值映射到新的类型和值。
例如,TableA 具有列 Letters varchar(1) 并存储字母表中的字母,我想将这些值移至 TableB 列 Numbers int 中。
INSERT INTO TableB( SomeColumn1, Numbers, SomeColumn2 )
SELECT SomeColumn1,
LetterToNumber =
CASE Letters
WHEN 'A' THEN 1
...
WHEN 'Z' THEN 26
END,
SomeColumn2
FROM TableA
这是这样做的正确方法吗?
When trying to copy the values of TableA to TableB in SQL 2008 environment, I'm trying to conditionally map some values to a new type and value.
For example, TableA has column Letters varchar(1) and stores letters of the alphabet, and I want to move these values to TableB in column Numbers int.
INSERT INTO TableB( SomeColumn1, Numbers, SomeColumn2 )
SELECT SomeColumn1,
LetterToNumber =
CASE Letters
WHEN 'A' THEN 1
...
WHEN 'Z' THEN 26
END,
SomeColumn2
FROM TableA
Is this the right way to go about doing this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
要么使用 char 到 ascii 值转换函数...
这假设您的字母全部大写。您还可以
这样做,在生成整数之前将小写值转换为大写...
Either that or use a char to ascii value conversion function...
That presumes that your letters are all caps. You can also do
That will convert lower case values to upper case before generating the integer...