SQL查询出来的结果 有个字段全部是0 但是我想把这个0全部变成汉字 怎么弄?

jy02481727 2017-10-20 11:39:42
例如
表A查询出来的记录如下:
name    aNum
若风     0
张凯     0
王乐     1
火星     0
王姐     1
苦役     1
风格     1


我想把这个表查询出来的aNum字段中的0 全部改为 汉字 零 1全部改为汉字壹
因为这个表只是为了举例 实际的表里面 0和1 是有几万条数据的
...全文
925 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
小野马1209 2017-10-27
  • 打赏
  • 举报
回复
是更新还是只是查询 1、如果是更新,要查看aNum字段是什么类型,如果是数值型,不能直接更新成文本 2、如果只是查询 用Case when 就好了,可以只用用二楼的代码
shadowpj 2017-10-27
  • 打赏
  • 举报
回复
我估计你的“aNum”是性别字段。切是bit类型。0,1代表的是男女!select 应该没问题。但是你要update就要更改aNum字段类型NVARCHAR(10)
td427 2017-10-25
  • 打赏
  • 举报
回复
把 aNum=1,改成字符型 CASE WHEN aNum = ‘1’ THEN '壹' WHEN aNum = ‘0’ THEN '零' ELSE aNum END AS anum
听雨停了 2017-10-20
  • 打赏
  • 举报
回复
如果只有0和1这两个数字的话直接用case when就好了,如果有很多个不同的数字,最好还是做个虚拟表连一下
jy02481727 2017-10-20
  • 打赏
  • 举报
回复
引用 5 楼 sinat_28984567 的回复:
--测试数据
if not object_id(N'Tempdb..#A') is null
	drop table #A
Go
Create table #A([name] nvarchar(22),[aNum] NVARCHAR(100))
Insert #A
select N'若风',0 union all
select N'张凯',0 union all
select N'王乐',1 union all
select N'火星',0 union all
select N'王姐',1 union all
select N'苦役',1 union all
select N'风格',1 union all
select N'风格',3				--如果除了1和0还有别的anum的话并且不要变,用这个试试
Go
--测试数据结束
SELECT  name ,
        CASE WHEN aNum = 1 THEN '壹'
             WHEN aNum = 0 THEN '零'
             ELSE aNum
        END AS anum
FROM    #A
提示这个 在将 varchar 值 '男' 转换成数据类型 bit 时失败。 怎么弄?谢谢
深度格式 2017-10-20
  • 打赏
  • 举报
回复
select name,aNum =case when aNum ='o' then '汉字' else aNum end from table
顺势而为1 2017-10-20
  • 打赏
  • 举报
回复


--测试数据
if not object_id(N'Tempdb..#A') is null
	drop table #A
Go
Create table #A([name] nvarchar(22),[aNum] NVARCHAR(100))
Insert #A
select N'若风',0 union all
select N'张凯',0 union all
select N'王乐',1 union all
select N'火星',0 union all
select N'王姐',1 union all
select N'苦役',1 union all
select N'风格',1 union all
select N'风格',3				--如果除了1和0还有别的anum的话并且不要变,用这个试试
Go

if not object_id(N'Tempdb..#B') is null
	drop table #B
Go

Create table #B(aNum int,aNum_Name nvarchar(10))
Insert #B
select 0,N'零' union all
select 1,N'壹' 
GO

--测试数据结束
SELECT  name ,aNum_Name
FROM    #A a
        Left Join #B b on a.aNum=b.aNum

name                   aNum_Name
---------------------- ----------
若风                     零
张凯                     零
王乐                     壹
火星                     零
王姐                     壹
苦役                     壹
风格                     壹
风格                     NULL



二月十六 2017-10-20
  • 打赏
  • 举报
回复
--测试数据
if not object_id(N'Tempdb..#A') is null
drop table #A
Go
Create table #A([name] nvarchar(22),[aNum] NVARCHAR(100))
Insert #A
select N'若风',0 union all
select N'张凯',0 union all
select N'王乐',1 union all
select N'火星',0 union all
select N'王姐',1 union all
select N'苦役',1 union all
select N'风格',1 union all
select N'风格',3 --如果除了1和0还有别的anum的话并且不要变,用这个试试
Go
--测试数据结束
SELECT name ,
CASE WHEN aNum = 1 THEN '壹'
WHEN aNum = 0 THEN '零'
ELSE aNum
END AS anum
FROM #A


听雨停了 2017-10-20
  • 打赏
  • 举报
回复
引用 3 楼 qq_38401734 的回复:
update table_A set aNum='壹' where aNum='1' update table_A set aNum='零' where aNum='0'
厉害了Word哥,你这直接把人家的源数据改了
学习呀 2017-10-20
  • 打赏
  • 举报
回复
update table_A set aNum='壹' where aNum='1' update table_A set aNum='零' where aNum='0'
吉普赛的歌 2017-10-20
  • 打赏
  • 举报
回复
USE tempdb
GO
IF OBJECT_ID('t') IS NOT NULL DROP TABLE t
GO
CREATE TABLE t([name] NVARCHAR(10), aNum INT)
GO
INSERT INTO t
SELECT '若风','0' 
 UNION SELECT '张凯','0' 
 UNION SELECT '王乐','1' 
 UNION SELECT '火星','0' 
 UNION SELECT '王姐','1' 
 UNION SELECT '苦役','1' 
 UNION SELECT '风格','1' 

SELECT 
[name]
,CASE WHEN aNum=1 THEN '壹' ELSE '零' END as aNum 
FROM t
/*
name       aNum
---------- ----
风格         壹
火星         零
苦役         壹
若风         零
王姐         壹
王乐         壹
张凯         零
*/

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧