有什么问题吗?
INSERT INTO [database].table1 (Number)
SELECT sd.a1 - sd.b1 AS kalan
FROM NUMBERS sd
错误:
无法将值NULL插入“code”列、表“database.dbo.table1”中;列不允许空值。插入失败。
我得到了一个计算列,我需要它是一个位字段,下面是一个公式的例子:
case when ([some_field] < [Some_Other_field])
then 0
else 1
end
使用此公式的计算列集的数据类型为int。
强制使用正确数据类型的最佳方法是什么?
在整个案例中使用CONVERT语句时,数据类型是bit,但它是Allow Nulls
CONVERT([bit],
case when (([some_field] < [Some_Other_field])
then 0
else 1
在Server 2012和2008 R2中运行存储过程时遇到问题,而它在Server 2000和2005中运行良好。
请参阅下面的代码:
SELECT * INTO #TB_Table_1
FROM (SELECT TOP 1 * FROM TB_Table_2) A
TRUNCATE TABLE #TB_Table_1
我现有的sp有以下代码。其目的仅是复制TB_Table_2的结构。
注意:TB_Table_2有一个标识列Master_ID。
接下来,我将尝试使用以下代码插入数据。这就是我遇到麻烦的地方。
INSERT INTO #TB_Table_1
SELECT * FROM TB_
我对这个查询有问题,我想复制一些列并在同一个表中添加一个新值,但似乎不能正常工作。我不知道是怎么回事
GO
IF OBJECT_ID('dbo.spInsertCopyDocumentos') IS NOT NULL
DROP PROCEDURE spInsertCopyDocumentos
GO
CREATE PROCEDURE spInsertCopyDocumentos
@IdArtigo int,
@IdNovo int
AS
BEGIN
SET NOCOUNT ON
INSERT INTO hDocumentos (IdArtigo)
我有一个数据表,它需要列是EventId (这些列的数量可以改变,因此需要是动态的),其中行是Employee,每个EventId/Employee的汇总数据是Sum(CallFee)。
我在想,Pivot可以很好地解决这个问题,但是我不确定如何在事件数量不断变化的情况下做到这一点。如有任何建议,我们将不胜感激。
以下是源SQL
SELECT Group, Employee, EventId, CallFee
FROM A
GROUP BY Group, Employee
ORDER BY Employee
这是所需的输出:
这是源表:
我有一个数据框架,如下所示:
a b c
0 Alabama[edit] NaN NaN
1 Auburn (Auburn University)[1]
2 Florence (University of
3 Jacksonville (Jacksonville State
4 Livingston (University of
当'b‘列有NaN值时,我想向名为' state’的dataframe中添加一个列,该列复制'a‘列的值,否则它只会在state列中放置一个NaN值。
我试过:
df['Sta
我有这个df:
data = np.array([[np.nan, 0], [2, 0], [np.nan, 1]])
df = pd.DataFrame(data=data, columns = ['a', 'b'])
看起来是这样的:
a b
--------
0 NaN 0.0
1 2.0 0.0
2 NaN 1.0
我的目标是创建第三列"c“,当列"a”等于NaN而列"b“等于0时,该列的值为1。否则"c“为0。简单的SQL case语句将是:
(CASE WHEN a IS NU
这段代码生成缺少的列(这没问题)
for a in data.columns:
if data[a].isnull().any() == True:
print (a)
现在,我想使用前面代码中的列来应用于以下代码
data[a].isnull().sum()
但是'a‘并不保存缺少的列名,它只是最后一列的名称。我需要使用像b=print (a)这样的东西,然后添加一个列表,但是我找不到正确的代码。
假设我有一个具有三列的表,并且我想接受至少一个列值为非空的所有行,现在我正在使用下面的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、B和C允许空值。
SELECT
A, B, C,
A + B + C AS 'SUM'
FROM Table
如果我的A, B and C值是10, NULL and NULL,则10, NULL and NULL列中没有显示任何内容。
有没有办法解决这个问题,并将SUM显示为10?而不是将空s转换为零?
当我试图在另一个计算字段中使用计算字段时,不允许在另一个计算列定义错误消息中使用计算列。有什么办法可以解决这个问题吗?
计算field1
ALTER TABLE DBO.[ASSy] ADD [CALC STOCK NO] AS (
CASE
WHEN isnull([DIRECTIONAL TREAD],'') ='YES RIGHT' THEN isnull([STOCK NO],'')+'R'
WHEN isnull([DIRECTIONAL TREAD],'') ='YES LEFT'
用SQL编写了一个很好的简单函数,显然在SELECT语句中是不可用的(或不可取的)。
在我们的选择中结合公司名称和联系人名称的组合有一些智能,我发现它在多个视图中重复。当然,作为一名程序员,正确的做法是封装该功能,以便在我创建的所有视图中重用。但遗憾的是,从我的搜索,这似乎是不可能的,或建议,至少不与UDF。
问题是:是否有任何方法选择方法/函数/可重用代码块的返回值,其中传递给它每一行的列值.,还是真的需要将逻辑复制/粘贴到每个select语句中?
SELECT formatName(company, contact, ' - ') as Name FROM company
假设我的数据数据被排序了,
如何找到所有4列都是NA的日期?框架应该是这样的,即所有NA行的日期都早于帧的其余部分。
删除比其他日期更早的日期的所有行。
检测是否有任何行在帧的后面至少有NA?
例如框架:
A B C
1977-1-1 NA NA NA
1977-1-2 NA NA NA
...
1978-1-1 10.5 5.5 6.5
...
2014-1-1 10.2 50.0 9.0
删除第一个非NA行之前的所有NA行(1978-1-1)
那么,在1978-1-1之后就不应该有任何全NA
我有这个存储过程,我想替换列值,以防它的空字符串或写入的Nil值被更改为"others“。我尝试了替换功能,但这不符合那里。我在下拉列表中得到的值
if(@Type='2')
Begin
select distinct APlan.FlightNumber
from tblArrivalPlan APlan
where (Status=5 or Status=7 or Status=68)
--select replace (APlan.FlightNumber,'004','JackSparrow')
我有一个数据框,其中有2个日期字段我想要过滤,并在其中任何一个日期字段为空时查看行。
ID Date1 Date2
58844880 04/11/16 NaN
59745846 04/12/16 04/14/16
59743311 04/13/16 NaN
59745848 04/14/16 04/11/16
59598413 NaN NaN
59745921 04/14/16 04/14/16
59561199 04/15/16 04/15/16
NaN
我在试着生成一个矩阵报告。我有一个SSN行和一个3位数的代码列。这3位数的代码在整个报表中随机插入到单元格中,每行一个。我希望将它们全部显示在一列中。我试过了..。
=Iif(IsNothing(Fields!CODE.Value),"The Field Is Null",Fields!CODE.Value)
但这只会显示"The Field is Null“。我希望不显示任何内容,如...
=Iif(IsNothing(Fields!CODE.Value),"",Fields!CODE.Value)
但是将空单元格本身排除在外。有谁知道成功的诀窍吗?
好吧,所以我知道这个问题:
设置为ANSI_NULLS时,对空值的所有比较都将计算为未知。
但是,我正在尝试查询一个DataTable。
我可以在我的查询中添加:
OR col_1 IS NULL OR col_2 IS NULL
对于每个列,但是我的表有47个列,我正在构建动态SQL (字符串连接),这样做似乎有点麻烦。还有别的解决办法吗?
NULL I将返回在 WHERE 比较中具有值的所有行。
更新
给我带来问题的查询示例:
string query = col_1 not in ('Dorothy', 'Blanche') and col_2 not
我该怎么做呢?
在表A中,我有3列具有整数值:表B中的a,b,c,我有3列具有整数值: x,y,z
我希望选择max of (a,b,c),并从x,y,z中选择相应的值。
示例:
a = 1, b = 2, c = 3
x = 7, y = 8, z = 9
结果:表有两列
firstColumn | secondColumn
c | 9
说明:c是a,b,c的最大值,我们取名称,而不是9是我们需要的第二个表中的值。
预先感谢ps,我正在使用sql server 2014
编辑:我试着用excel表做一个例子。
我有一个使用CTE的视图,我希望使用行号来模拟Visual中的edmx键
ALTER VIEW [dbo].[ViewLstTypesArticle]
AS
WITH cte (IdTypeArticle, IdTypeArticleParent, Logo, Libelle, FullLibelle, Racine) AS
(
SELECT
f.Id AS IdTypeArticle, NULL AS IdParent,
f.Logo, f.Libelle,
CAST
我想要编写一个update查询,以便在当前值为NULL的情况下将SQL表中的多个列更新为BLANKS。 我写了一个类似下面的查询,但它似乎没有正确地更新所有适当的行,其中一些/所有这些列都具有NULL。 Update A SET
A.Col1 = CASE WHEN A.COl1 is NULL THEN ' ' END,
A.Col2 = CASE WHEN A.COl2 is NULL THEN ' ' END,
A.Col3 = CASE WHEN A.COl3 is NULL THEN ' ' END,