而且我是和C#程序联合一起用的 并不是select 出来一条 而是select 出来可能上百 上千那样
比如有2个字段 A,B
如果B字段为空 就显示A 否则就显示B 请问该如何写,,谢谢
16 个解决方案
#1
isnull(b,a)
#2
IF NOT OBJECT_ID('[tb]') IS NULL
DROP TABLE [tb]
GO
CREATE TABLE [tb](a NVARCHAR(10),b NVARCHAR(10),[成绩] INT,[年龄] INT)
INSERT [tb]
SELECT N'张三',NULL,50,18 UNION ALL
SELECT N'张三',N'语文',70,18 UNION ALL
SELECT NULL,N'外语',80,18
-->SQL查询如下:
select ISNULL(a,b) from tb
/*
----------
张三
张三
外语
(3 行受影响)
*/
#3
isnull? 我那个字段里面 只是没存东西 就是例如 空字符串 "" 这样 并不是 <Null> 这个能好用么?
我去试下看看
我去试下看看
#4
--还有一种情况
IF NOT OBJECT_ID('[tb]') IS NULL
DROP TABLE [tb]
GO
CREATE TABLE [tb](a NVARCHAR(10),b NVARCHAR(10),[成绩] INT,[年龄] INT)
INSERT [tb]
SELECT N'张三',NULL,50,18 UNION ALL
SELECT '',N'语文',70,18 UNION ALL
SELECT NULL,N'外语',80,18
-->SQL查询如下:
select ISNULL(nullif(a,''),b) from tb
/*
----------
张三
语文
外语
(3 行受影响)
*/
#5
想到了。
#6
饿,,不行啊,,,isnull 真的不可以,,显示出来的是空白,,因为我那个B字段并不是没有就用 null 而是用空字符串保存进去的
#7
sql 新手 看不懂饿,,,能麻烦你 直接用 A和B字段给我演示一下么,,谢谢
#8
在你回完27秒又回了。
#9
嗯,,我看到你后来发的那个了,,但是,,,真的看不懂,,哎,,能麻烦你用 A和B字段给我演示下么,,,十分感谢
#10
IF NOT OBJECT_ID('[tb]') IS NULL这个看懂了吧
DROP TABLE [tb]
GO
CREATE TABLE [tb](a NVARCHAR(10),b NVARCHAR(10),[成绩] INT,[年龄] INT)
INSERT [tb]
SELECT N'张三',NULL,50,18 UNION ALL
SELECT '',N'语文',70,18 UNION ALL
SELECT NULL,N'外语',80,18
SELECT CASE WHEN ISNULL(A,'')='' THEN B ELSE A END FROM TB
/*
----------
张三
语文
外语
(3 行受影响)
*/
#11
select case when a='' or a is null then b else a end from Tb
#12
谢谢,,我再试下 这个能看懂了
#13
先看一下11楼的,
再看一下10楼的,关键是要会case when及isnull的用法,不难的
再看一下10楼的,关键是要会case when及isnull的用法,不难的
#14
其实这个很好看懂...nullif就是满足这个(a,'')条件,则把这个字段置为null,则可以使用isnull函数了
#15
isnull(x,y)
#16
isnull(a,b)
或者用case也可以。
select case when a='' or a is null then b else a end from Tb。
或者用case也可以。
select case when a='' or a is null then b else a end from Tb。
#1
isnull(b,a)
#2
IF NOT OBJECT_ID('[tb]') IS NULL
DROP TABLE [tb]
GO
CREATE TABLE [tb](a NVARCHAR(10),b NVARCHAR(10),[成绩] INT,[年龄] INT)
INSERT [tb]
SELECT N'张三',NULL,50,18 UNION ALL
SELECT N'张三',N'语文',70,18 UNION ALL
SELECT NULL,N'外语',80,18
-->SQL查询如下:
select ISNULL(a,b) from tb
/*
----------
张三
张三
外语
(3 行受影响)
*/
#3
isnull? 我那个字段里面 只是没存东西 就是例如 空字符串 "" 这样 并不是 <Null> 这个能好用么?
我去试下看看
我去试下看看
#4
--还有一种情况
IF NOT OBJECT_ID('[tb]') IS NULL
DROP TABLE [tb]
GO
CREATE TABLE [tb](a NVARCHAR(10),b NVARCHAR(10),[成绩] INT,[年龄] INT)
INSERT [tb]
SELECT N'张三',NULL,50,18 UNION ALL
SELECT '',N'语文',70,18 UNION ALL
SELECT NULL,N'外语',80,18
-->SQL查询如下:
select ISNULL(nullif(a,''),b) from tb
/*
----------
张三
语文
外语
(3 行受影响)
*/
#5
想到了。
#6
饿,,不行啊,,,isnull 真的不可以,,显示出来的是空白,,因为我那个B字段并不是没有就用 null 而是用空字符串保存进去的
#7
sql 新手 看不懂饿,,,能麻烦你 直接用 A和B字段给我演示一下么,,谢谢
#8
在你回完27秒又回了。
#9
嗯,,我看到你后来发的那个了,,但是,,,真的看不懂,,哎,,能麻烦你用 A和B字段给我演示下么,,,十分感谢
#10
IF NOT OBJECT_ID('[tb]') IS NULL这个看懂了吧
DROP TABLE [tb]
GO
CREATE TABLE [tb](a NVARCHAR(10),b NVARCHAR(10),[成绩] INT,[年龄] INT)
INSERT [tb]
SELECT N'张三',NULL,50,18 UNION ALL
SELECT '',N'语文',70,18 UNION ALL
SELECT NULL,N'外语',80,18
SELECT CASE WHEN ISNULL(A,'')='' THEN B ELSE A END FROM TB
/*
----------
张三
语文
外语
(3 行受影响)
*/
#11
select case when a='' or a is null then b else a end from Tb
#12
谢谢,,我再试下 这个能看懂了
#13
先看一下11楼的,
再看一下10楼的,关键是要会case when及isnull的用法,不难的
再看一下10楼的,关键是要会case when及isnull的用法,不难的
#14
其实这个很好看懂...nullif就是满足这个(a,'')条件,则把这个字段置为null,则可以使用isnull函数了
#15
isnull(x,y)
#16
isnull(a,b)
或者用case也可以。
select case when a='' or a is null then b else a end from Tb。
或者用case也可以。
select case when a='' or a is null then b else a end from Tb。