假设我有一个具有三列的表,并且我想接受至少一个列值为非空的所有行,现在我正在使用下面的coalesce()进行空检查,并且它运行良好。
with Test_name AS(
select null as id , null as f_name , null as l_name
union ALL
select 1,'fname1', null
union ALL
select null,null,null
) select tn.* from Test_name tn where coalesce(id,f_name,l_name) i
我需要创建一个查询来收集列A不为空且不为空的所有行。
当我使用这个的时候:
AND A.EXP_GRAD_TERM is not null AND A.EXP_GRAD_TERM <> ' '
我得到了1169条记录,其中所有记录都有一些字段的值。
但是当我使用这个的时候:
AND LTRIM(RTRIM(A.EXP_GRAD_TERM)) is not null
我有1932张唱片。它们有带有值的行和带有空格的行。我甚至转换了列,列只有空格或值,没有其他奇怪的不可见字符。
我不知道为什么。我认为他们应该以同样的方式工作。
有什么想法吗?
我有剧本:
SELECT
dtypcode,
debtornum AS 'Debtor Number',
debtorchk AS 'Check Digit',
balancedr AS 'Debit Balance',
balancecr AS 'Credit Balance' ,
balancedr + balancecr AS 'Balance'
FROM
[pthdbo].[ldrdtyp] A
JOIN
[pthdbo].[ldrdbt
我有这样的声明:
SELECT COUNT(AccedentId) AS NumberOfAccedentInYear
FROM Accident
GROUP BY DriverId, YEAR(AccedentDate)
HAVING (DriverId =@DriverId)<3
当有行的时候,我得到一个有效的计数,但是当没有行的时候,结果是空的。当没有匹配的行时,我希望结果是0。
像这样的查询
SELECT A,B,C,D, (A+B+C+D) as TOTAL
FROM TABLES
如果A、B、C和D为空。我需要返回NULL。但如果其中任何一个不为空。其他值将从NULL变为零。和total(a+b+c+d)。
现在试试这个方法
SELECT A,B,.. CASE WHEN (A IS NULL) AND (B IS NULL) AND ... THEN NULL
ELSE ISNULL(A,0) + ISNULL(B,NULL) +... END
但是它太长了,我在整个查询中有很多总数。
我必须找出两个合同日期之间的区别。基本上介于生效日期和结束日期之间。但是,如果合同仍然有效,所以我想要今天。(时间戳)?如何在SQL中将两者结合在一起,例如:
start d: 1/1/17 end date: 2/1/17 effective days 31
start d: 1/1/17 end date: null effective days: total days to date.
我正在尝试合并列,以便它们都显示为一个列。问题是,如果一个行有一个为空的列,那么整个行将显示为null。我已经尝试过使用CASE语句来完成这个任务。以下是我的疑问:
SELECT
a.AddressID,
CASE
WHEN a.Address IS NULL
AND a.Address2 IS NULL THEN
a.City + ' ' + a.State + ' ' + a.Country + ' ' + a.Zip
WHEN a.Address2 IS NULL THEN
A B C Equal
1 1 1 Y
2 2 NULL N
嗨,我有3列需要比较: A,B,C列,如果这3列是相同的,那么列‘等于’= 'Y‘。
但是,如果一个列为null,那么它必须排除在比较之外,例如在示例第2行中有一个null,但是其余的列都是相同的,所以等于应该是,因为所有的非空值都是相等的。
http://www.sqlfiddle.com/#!3/dedd9/2
我想我可以使用isnull(C,A) =A,但它不起作用。有人能帮忙吗?
declare @t table
(
A decimal,B decimal, C decima
也许是因为我累了,但这让我想不起来了。
假设我想要展平这张桌子:
a_id a_val b_id b_val c_id c_val d_id d_val
1 a 10 b 100 c 1000 f
1 a 20 d 200 g null null
2 e 30 h 300 i null null
2 j 40 k null null null
我试着按年和按月销售,就像
select * from
(
select year(InvDt) as [Year], left(datename(Month,InvDt), 3) as [Month],
InvAmnt as Amount
from tblInvoice where TenantId =-xxxxxxxx
) as Inv
pivot
(sum(Amount) for [Month] in(Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep,
Oct, Nov, [Dec])) as pvt
但是这里有这么多的
哪种查询应该更快
UPDATE table1
SET field1 = COALESCE(field1, someValue)
WHERE foreignKeyField = someKeyValue
或
UPDATE table1
SET field1 = someValue
WHERE foreignKeyField = someKeyValue AND field1 is null
在MS SQL Server中?它依赖于什么?
问题:
我试图在VBA (Excel)中执行一个查询,其中包含一个使用SUM的计算。
Select SUM(field1) - SUM(field2) as 'newField' from y。
如果没有空值或空字段,那么代码就能很好地工作,但是,只要field1或field2中有一个空/空值,就会返回一个空值。
因此,如果是SUM(field1) = 17 and SUM(field2) = null,我希望看到查询返回17,而不是空白值。
代码:
Public Function GetRiskRecords(ByVal strPrgNo As String) As Vari
我想将一个大约11或12个字符的varchar值转换成一个整数值,并对其进行一些计算。
如果不可能解析varchar,则返回值在任何情况下都应该是0(零)。不为空,而不是错误。
以下是我尝试过的:
SELECT CAST(NULL AS INT) -- NULL
SELECT CAST('' AS INT) -- 0
SELECT CAST('42' AS INT) -- 42
SELECT CAST('abc' AS INT) -- Conversion failed when converting the varchar value
我目前正在开发一个Inserts customer data into a database的web表单。在插入之前,数据库需要是queried for duplicates。我正在检查的字段是Name, Shipping Address, and Billing Address。Name是required field,至少是one address is also required。现在,我(非常混乱)的代码如下所示:
string partialQuery;
SqlConnection sqlConn = new SqlConnection(connString);
if(/*both a
我有一个存储过程,我希望对空列进行平均值。
这是我的存储过程:
SELECT
AVG(planned) AS Planned,
AVG(achieved) AS Achieved
FROM
Port
INNER JOIN
Technology ON Port.portID = Technology.portRef
我使用数据源将此存储过程绑定到图表,当列为空时,C#代码抛出此错误:
对于十进制来说,值要么太大要么太小。
如何处理存储过程以avg那些空列?
我有以下SQL查询
select s.comments + s.further_comments from dbo.samples s where id = 1234
但是,如果s.comments或s.further_comments为NULL,则整个字符串将返回NULL
如何将空值转换为空字符串,或者至少只返回该字符串中的非空值?
要简化问题:
我有一个select,它有时可以返回NULL。
例如:
-- if the customer has no fax then NULL will be returned
select customerFax from customers
如何检查这个空值,然后返回一个字符串值而不是空值,我需要在报告中显示一些友好的消息。
因此,如果为null,则返回某个字符串,否则返回db中的值...
我希望这足够简单易懂--谢谢
我希望有条件地填充spark中的nan值(以确保我考虑了数据的每个角落情况,而不是简单地用替换值填充任何内容)。
一个样本可能看起来
case class FooBar(foo:String, bar:String)
val myDf = Seq(("a","first"),("b","second"),("c",null), ("third","fooBar"), ("someMore","null"))
.toDF("fo
我需要将City、State和Country列连接到类似于城市、州、国家的列中。
这是我的密码:
Select City + ', ' + State + ', ' + Country as outputText from Places
但是,由于City和State允许null (或空)值,所以如果City是空/空的,那么我的输出将看起来像, Iowa, USA;或者说State是空的,那么输出看起来就像Seattle, , USA
无论如何,我可以格式化输出并删除“不必要”逗号吗?
编辑:由于需求,我不应该使用任何其他方法(例如PL/SQL、Store过程等
我想在select语句中做一个加法,如下所示:
select (I + j + k) as total from MyTable ...
正如预期的那样,如果I,j,k中的任何一个为null,则total将作为null返回。
我如何编码这个select,以便当I,j,k中的任何一个为空(缺少)时,缺少的值被视为0以用于相加(以便总数永远不为空)?谢谢。
我需要将表的多个列连接成一个值,然后在asp下拉列表中显示该值。我发出的SQL代码如下所示:
SELECT UserID,CustomerNum,UserName +‘-’+ UserAddress + ',‘+ UserCity +’‘+ UserState AS UserInfo FROM Users WHERE (CustomerNum = @CustomerNum) ORDER BY UserName
然后,我将“UserInfo”设置为下拉列表中的文本字段。
这通常是可行的,除非数据库中的某一列偶尔为空(例如,UserState)。当发生这种情况时,整个连接是空的,并且我在d