我在一个将行插入表的存储过程中有类似于以下的代码,我想将最后一列(FieldD)设置为@prmSomeValue,除非它是null,否则只需使用为其定义的默认值柱.
IF (@prmSomeValue IS NULL)
INSERT INTO MyTable (fieldA,FieldB,FieldC)
SELECT A,B,C
FROM MyOtherTable
ELSE
INSERT INTO MyTable (fieldA,FieldB,FieldC,FieldD)
SELECT A,B,C,@prmSomeValue
FROM MyOtherTable
Run Code Online (Sandbox Code Playgroud)
这有效,但违反了DRY原则.我试图用一个插入语句找到一些方法来做到这一点.以下伪代码的行.
INSERT INTO MyTable (fieldA,FieldB,FieldC,FieldD)
SELECT A,B,C,ISNULL(@prmSomeValue,DEFAULT)
FROM MyOtherTable
Run Code Online (Sandbox Code Playgroud)
有人有主意吗?
更新 - 再一次扭曲
默认约束不是文字值,而是如下所示的函数.
...DEFAULT (suser_sname()) FOR [FieldD]
Run Code Online (Sandbox Code Playgroud)
更新
我终于受到了惩罚并选择了较小的邪恶,只是将默认值函数复制到我的查询中,而不是落入为列配置的默认值.我不喜欢它,但它可以在我的查询中减少重复完成工作.
INSERT INTO MyTable (fieldA,FieldB,FieldC,FieldD)
SELECT A,B,C,ISNULL(@prmSomeValue,suser_sname())
FROM MyOtherTable
Run Code Online (Sandbox Code Playgroud) 我想做一个搜索语句并查询这样的事情
select * from table where col like '%vkvk%'
Run Code Online (Sandbox Code Playgroud)
但通过反复试验,我得出的结论是,访问不适用于LIKE或通配符运算符.有没有人有其他解决方案,因为我实际上并不是这样,所以我真的不知道.
是否可以使用名称与url中指定的操作名称不同的操作方法?我尝试用Global.asax中的routes表做这个没有运气.这是我试过的:
routes.MapRoute(
"ApproveSellers",
"Admin/Account/ApproveSellers/",
new { controller = "Account", action = "ApproveSeller"},
new[] { "UI.Areas.Admin.Controllers" }
);
Run Code Online (Sandbox Code Playgroud)
我希望将action方法称为ApproveSeller,但将url称为ApproveSellers.
这似乎是一件简单的事情,我相信我之前已经这样做了,但是我已经有一段时间了,因为我在Access中做了任何UI编程.我需要做的是在表单上放置一个按钮,在子表单的数据表和表单视图之间切换.
我找到了一个defaultview属性,但看起来它没有任何东西可以在窗体已经打开后切换它的视图.
基本上我需要我可以填写以下代码的属性..
sfEmployeeBatchEntry.Form.??? = acFormDS
Run Code Online (Sandbox Code Playgroud) 正如标题中所要求的那样,当网页加载到浏览器时,第一个事件是什么?我相信window.onload之前有事件.它们是什么,哪一个是第一个被解雇的?
所以我试图向一些人解释为什么这个查询是个坏主意:
SELECT z.ReportDate, z.Zipcode, SUM(z.Sales) AS Sales,
COALESCE(
(SELECT TOP (1) GroupName
FROM dbo.zipGroups
WHERE (Zipcode = z.Zipcode)), 'Unknown') AS GroupName,
COALESCE(
(SELECT TOP (1) GroupCode
FROM dbo.zipGroups
WHERE (Zipcode = z.Zipcode)), 0) AS GroupNumber
FROM dbo.Report_ByZipcode AS z
GROUP BY z.ReportDate, z.Zipcode
Run Code Online (Sandbox Code Playgroud)
并建议一个更好的方式来写它,当我的老板结束讨论时,"嗯,它已经返回了去年的正确数据,我们没有遇到任何问题,所以没关系."
在这一点上,我想,在世界上,甚至可能是什么?
经过一番挖掘,我发现了这些事实:
所以我的问题有2个部分.
A)即使SELECT TOP查询中没有ORDER BY子句,它们实际上是确定性的,因为聚簇索引基本上是为它提供默认的ORDER BY吗?
B1)如果这是真的,那么查询是否会岌岌可危,实际上正在做它应该做的事情?
B2)如果不是这样,你能帮我证明一下吗?
注意:我已经重写了这个以使用连接,所以我不需要SQL来修复它,我需要将它投入生产中,所以我不再担心它会破坏.
我在某处读过,可以选择在主键创建的树叶上存储其他数据.例如,如果我有一个包含列的表:row_id,customer_id,我需要显示customer_name,我可以在table和customers表之间进行连接.但我也可以使用customers表的主键(带有customer_id)存储customer_name,并且sql引擎不必加载整行客户以便获取客户名称.
有人能描述得更好吗?我该如何实现呢?
我需要使用javascript将小数值四舍五入到小数位.
防爆,:
16.181 to 16.18
16.184 to 16.18
16.185 to 16.19
16.187 to 16.19
Run Code Online (Sandbox Code Playgroud)
我找到了一些答案,但大多数答案都没有完成16.185到16.19.
我可以根据浏览器的高度更改加载的CSS文件吗?
例如,如果浏览器小于600px,则使用index_sm.css,否则使用index_lg.css.
我需要从表中选择行,例如,无论日期如何,时间都是> = 18:00:00。问题在于值是日期时间类型,因此旁边还有日期。例如2012-01-25 18:00:00。
table1
======
row 1: id='1' datetime='2012-01-25 18:00:00'
row 2: id='2' datetime='2012-01-27 15:00:00'
row 3: id='3' datetime='2012-01-30 19:45:00'
Run Code Online (Sandbox Code Playgroud)
我需要选择第1行和第3行。
有没有办法结合LIKE和> =来进行时间> ='%18:00:00',其中%代表任何日期?