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 是有几万条数据的
...全文
444 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
小野马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
---------- ----
风格         壹
火星         零
苦役         壹
若风         零
王姐         壹
王乐         壹
张凯         零
*/
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2017-10-20 11:39
社区公告
暂无公告