小编Jes*_*aja的帖子

使用dateadd在CASE表达式中的奇怪行为

我在使用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在任何情况下执行都是一个问题,并且由于传递的参数值而失败.但在我的例子中,它们是不变的,无论如何都应该有效.

这里发生了什么?

sql sql-server

4
推荐指数
1
解决办法
49
查看次数

用于循环数据绑定的 Kendo UI

我的项目中有这样一段代码:

<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)

data-binding listview observable kendo-ui

3
推荐指数
1
解决办法
5771
查看次数

可空的DateTime到String

我想将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.

c# datetime

3
推荐指数
1
解决办法
1万
查看次数

转换增量值

我试图将增量值转换为字符串.

i++.ToString()
Run Code Online (Sandbox Code Playgroud)

以上声明工作正常.

++i.ToString()
Run Code Online (Sandbox Code Playgroud)

这一个显示错误行.为什么?

c#

3
推荐指数
1
解决办法
152
查看次数

使用LIKE查找%

我需要%在专栏中找到.我尝试了以下内容

SELECT  *
FROM    <table>
WHERE   <column> LIKE '%%%'
Run Code Online (Sandbox Code Playgroud)

但是,列出了所有行.如何只查找具有% using LIKE条件的行?

sql-server

3
推荐指数
2
解决办法
165
查看次数

创建触发器时无法绑定多部分标识符"inserted.Id"

我试图在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中发生这种情况?

sql-server

3
推荐指数
1
解决办法
2323
查看次数

从自引用表中获取所有子项(子代,子代)和父代

我想创建一个“可选方法”(无论它是视图还是函数,存储过程或其他东西,我都不知道是否还有其他方法)来获取所有直接父母和所有孩子,自孙表中的,孙,孙代等记录。我想从C#(.NET)调用的“可选方法”

我们有一个名为的表entities,它(除其他外)具有一个属性parentId,该属性引用Identities表的字段。通过这种方式,我们可以对实体树进行建模(在我们的案例中是建筑物,思想屋,地板,房间等的元素)

父节点(如果可视化)是形成到根元素的直线的节点。

子节点可以可视化地“展开”。

如果必须在两个单独的语句中进行选择就可以了。

在C#中,我知道如何执行此操作,但是我不想向数据库发出大量请求,并且我认为Sql Server本身可以快速执行此操作,但我不知道如何:-)

c# sql-server

2
推荐指数
1
解决办法
837
查看次数

像我在使用"?"时查询无效 字符

我的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查询

sql sql-server

2
推荐指数
1
解决办法
98
查看次数

在变量中使用连字符

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 行“-”附近的语法不正确。

如果服务器名称有连字符,我们不能在变量中使用它吗?如果是这样,是否有解决方法,因为我不允许更改服务器名称,但必须在变量中使用它。

sql t-sql sql-server

2
推荐指数
1
解决办法
3359
查看次数

仅获取Y列中最接近X行的行

------------------------------------
   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 sql-server sql-server-2005

2
推荐指数
1
解决办法
63
查看次数