我在使用a的SQL语句中表达了一些奇怪的行为CASE.它可以通过以下示例重现:
SELECT
CASE
WHEN 1=1
THEN 'foo'
WHEN 1=2
THEN (DATEADD(s, 1435586700, '01/01/1970 00:00:00'))
WHEN 1=3
THEN (DATEADD(s, 1435586700, '01/01/1970 00:00:00'))
ELSE
'bar'
END AS result
Run Code Online (Sandbox Code Playgroud)
如果在SQL Server 2008上执行此操作,则不返回任何结果.只要您为第二个或第三个案例更改它成功,它就会返回一个值.如果您完全删除这些案例,它可以正常工作.
起初我认为DATEADD在任何情况下执行都是一个问题,并且由于传递的参数值而失败.但在我的例子中,它们是不变的,无论如何都应该有效.
这里发生了什么?
我的项目中有这样一段代码:
<script id="menuTemplate" type="text/x-kendo-template">
# for(var i=0; i < menus.menu.length; i++){ #
<li id="menu-#= i#" data-bind="events: {click: menuClick}" class="menu-item">
<div>#= menus.menu[i].name #</div>
</li>
# } #
</script>
<div data-role="view" id="menuPage" data-model="menuViewModel">
<ul id="menuListView" data-role="listview" data-template="menuTemplate" data-bind="source: dataSource"></ul>
</div>
<script>
$(document).ready(function(){
var dataSource = new kendo.data.DataSource({
transport: {
read: {
url: "data/test.json",
dataType: "json",
},
},
schema: {
data: function(data) {
return data;
}
},
});
var menuViewModel = kendo.observable({
dataSource: dataSource,
menuClick: function(e) {
alert(e);
}
});
kendo.bind($(document.body), menuViewModel);
}); …Run Code Online (Sandbox Code Playgroud) 我想将Nullable DataTime转换为字符串.
DateTime datetime = DateTime.Now;
string strdatetime = datetime.ToString("MM/dd/yyyy");
Run Code Online (Sandbox Code Playgroud)
以上编码工作正常,不可为空的DateTime.
DateTime? datetime = DateTime.Now;
string strdatetime = datetime.ToString("MM/dd/yyyy");
Run Code Online (Sandbox Code Playgroud)
这个显示错误No overload for method 'ToString' takes 1 arguments.
我试图将增量值转换为字符串.
i++.ToString()
Run Code Online (Sandbox Code Playgroud)
以上声明工作正常.
++i.ToString()
Run Code Online (Sandbox Code Playgroud)
这一个显示错误行.为什么?
我需要%在专栏中找到.我尝试了以下内容
SELECT *
FROM <table>
WHERE <column> LIKE '%%%'
Run Code Online (Sandbox Code Playgroud)
但是,列出了所有行.如何只查找具有% using LIKE条件的行?
我试图在SQL Server 2012中的表上创建一个触发器,但它给出了如下错误
"多部分标识符"已插入.Id"无法绑定",
我正在执行的查询是
CREATE TRIGGER dbo.[TR_t_documents_InsertUpdateDelete] ON
dbo.[t_documents] AFTER INSERT, UPDATE, DELETE
AS
BEGIN
UPDATE dbo.[t_documents]
SET dbo.[t_documents].[UpdatedAt] = CONVERT(DATETIMEOFFSET, SYSUTCDATETIME())
FROM
INSERTED
WHERE inserted.[Id] = dbo.[t_documents].[Id]
END
Run Code Online (Sandbox Code Playgroud)
这在SQL Server 2014中成功执行.
任何人都可以帮助我为什么在SQL Server 2012中发生这种情况?
我想创建一个“可选方法”(无论它是视图还是函数,存储过程或其他东西,我都不知道是否还有其他方法)来获取所有直接父母和所有孩子,自孙表中的,孙,孙代等记录。我想从C#(.NET)调用的“可选方法”
我们有一个名为的表entities,它(除其他外)具有一个属性parentId,该属性引用Id该entities表的字段。通过这种方式,我们可以对实体树进行建模(在我们的案例中是建筑物,思想屋,地板,房间等的元素)
父节点(如果可视化)是形成到根元素的直线的节点。
子节点可以可视化地“展开”。
如果必须在两个单独的语句中进行选择就可以了。
在C#中,我知道如何执行此操作,但是我不想向数据库发出大量请求,并且我认为Sql Server本身可以快速执行此操作,但我不知道如何:-)
我的SQL查询是这样的
create table Manager(id int, managerid varchar(3) , managername varchar(50))
insert into Manager(id,managerid,managername)values(123,'A12','Mangesh')
insert into Manager(id,managerid,managername)values(54321,'A23','Sagar')
insert into Manager(id,managerid,managername)values(334,'C34','Ahmad')
insert into Manager(id,managerid,managername)values(456,'A45','Mango')
insert into Manager(id,managerid,managername)values(567,'B56','Sandesh')
Run Code Online (Sandbox Code Playgroud)
我喜欢的查询就是这个
select * from Manager where id LIKE '%4321%'
Run Code Online (Sandbox Code Playgroud)
这个查询给了我这个记录
id managerid managername
54321 A23 Sagar
Run Code Online (Sandbox Code Playgroud)
但是当我尝试运行这种查询时,它并没有给我任何记录,即零记录计数,但实际上有一条记录查询是:
select * from Manager where id LIKE '%?4321%'
Run Code Online (Sandbox Code Playgroud)
这有什么问题?
sql小提琴sql查询
DECLARE @query varchar(MAX)
DECLARE @dbinstance varchar(200)
DECLARE @dbname varchar(200)
SET @dbinstance = 'this-is-servername\databaseinstancename'
SET @dbname = 'databasename'
SET @query = 'select column1, column2 from +@dbinstance+'.'+@dbname+'
EXEC(@query)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
消息 102,级别 15,状态 1,第 3 行“-”附近的语法不正确。
如果服务器名称有连字符,我们不能在变量中使用它吗?如果是这样,是否有解决方法,因为我不允许更改服务器名称,但必须在变量中使用它。
------------------------------------
X Y
------------------------------------
10 20
10 5
10 9
50 40
50 30
100 70
100 100
Run Code Online (Sandbox Code Playgroud)
将1,2,3行视为A组,将4,5行视为B组,将6,7行视为C组
我想为一个组只获得一行,并且该行应该取决于X,Y列值.
Y列的值最接近x
预期结果
------------------------------------
X Y
------------------------------------
10 9
50 40
100 100
Run Code Online (Sandbox Code Playgroud) sql-server ×7
sql ×4
c# ×3
data-binding ×1
datetime ×1
kendo-ui ×1
listview ×1
observable ×1
t-sql ×1