小编p.c*_*ell的帖子

计算列的公式基于不同的表列

考虑一下这个表: c_const

 code  |  nvalue
 --------------
 1     |  10000
 2     |  20000  
Run Code Online (Sandbox Code Playgroud)

和另一张桌子 t_anytable

 rec_id |  s_id  | n_code
 ---------------------
 2      |  x     | 1
Run Code Online (Sandbox Code Playgroud)

目标是s_id基于以下公式成为计算列:

 rec_id*(select nvalue from c_const where code=ncode)
Run Code Online (Sandbox Code Playgroud)

这会产生错误:

在此上下文中不允许子查询.只允许标量表达式.

如何使用另一个表的列作为输入来计算此计算列的值?

sql calculated-columns sql-server-2008

47
推荐指数
2
解决办法
7万
查看次数

添加列描述

有谁知道如何通过运行脚本将描述添加到SQL Server列?我知道您可以在使用SQL Server Management Studio创建列时添加说明.

我如何编写脚本,以便在我的SQL脚本创建列时,还会添加列的描述?

sql sql-server sql-server-2005

46
推荐指数
4
解决办法
5万
查看次数

使用另一个表中的数据更新一个表

表格1:

id    name    desc
-----------------------
1     a       abc
2     b       def
3     c       adf
Run Code Online (Sandbox Code Playgroud)

表2:

id    name    desc
-----------------------
1     x       123
2     y       345
Run Code Online (Sandbox Code Playgroud)

如何运行可以使用相同的ID更新表1和表2的名称和desc 的SQL更新查询?所以我得到的最终结果是

表格1:

id    name    desc
-----------------------
1     x       123
2     y       345
3     c       adf
Run Code Online (Sandbox Code Playgroud)

如何做到这一点:

  • SQL Server
  • MySQL的
  • PostgreSQL的
  • 神谕

sql database

46
推荐指数
4
解决办法
17万
查看次数

删除字符串中的分隔符之间的文本(使用正则表达式?)

考虑要求找到一对匹配的字符集,并删除它们之间的任何字符,以及那些字符/分隔符.

以下是分隔符集:

 []    square brackets
 ()    parentheses
 ""    double quotes
 ''    single quotes
Run Code Online (Sandbox Code Playgroud)

以下是一些应匹配的字符串示例:

 Given:                       Results In:
-------------------------------------------
 Hello "some" World           Hello World
 Give [Me Some] Purple        Give Purple
 Have Fifteen (Lunch Today)   Have Fifteen
 Have 'a good'day             Have day
Run Code Online (Sandbox Code Playgroud)

以及一些不匹配的字符串示例:

 Does Not Match:
------------------
 Hello "world
 Brown]co[w
 Cheese'factory
Run Code Online (Sandbox Code Playgroud)

如果给定的字符串不包含匹配的分隔符集,则不会对其进行修改.输入字符串可以具有许多匹配的分隔符对.如果一组2个分隔符重叠(即he[llo "worl]d"),那就是我们可以忽略的边缘情况.

该算法看起来像这样:

string myInput = "Give [Me Some] Purple (And More) Elephants";
string pattern; //some pattern
string output = Regex.Replace(myInput, pattern, string.Empty);
Run Code Online (Sandbox Code Playgroud)

问题:如何使用C#实现这一目标?我倾向于正则表达式.

额外:是否有简单的方法可以在常量或某种列表中匹配这些起始和结束分隔符?我正在寻找的解决方案很容易更改分隔符,以防业务分析师提出新的分隔符集.

.net c# regex string algorithm

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

Azure存储Blob重命名

是否可以从Web角色使用Azure存储API重命名Azure存储Blob?我目前唯一的解决方案是将blob复制到具有正确名称的新blob并删除旧的blob.

c# azure azure-storage

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

C#:foreach中的yield return失败 - body不能成为迭代器块

考虑一下混淆代码.目的是通过匿名构造函数及其动态创建一个新对象yield return.目标是避免仅仅为了维护本地集合return.

public static List<DesktopComputer> BuildComputerAssets()
{           
    List<string> idTags = GetComputerIdTags();

    foreach (var pcTag in idTags)
    {
        yield return new DesktopComputer() {AssetTag= pcTag
                                          , Description = "PC " + pcTag
                                          , AcquireDate = DateTime.Now
                                           };
    }            
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这段代码会产生异常:

错误28'Foo.BuildComputerAssets()'的主体不能是迭代器块,因为'System.Collections.Generic.List'不是迭代器接口类型

问题

  • 这个错误信息是什么意思?
  • 如何避免此错误并yield return正确使用?

c# iterator yield

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

将SQL Server结果集转换为字符串

我在SQL Server中得到的结果为

SELECT StudentId FROM Student WHERE condition = xyz
Run Code Online (Sandbox Code Playgroud)

我得到的输出就像

StudentId
1236

7656

8990
........

存储过程的输出参数是@studentId字符串,我希望return语句为

1236, 7656, 8990.
Run Code Online (Sandbox Code Playgroud)

如何在单个字符串中转换输出?

我正在返回单列[即.学生卡]

sql t-sql sql-server sql-server-2005

42
推荐指数
5
解决办法
13万
查看次数

从时间戳开始按天分组

在我的posts表中,它为每个帖子记录保存了时间戳.

使用此时间戳列,哪些查询可以按天分组?

mysql sql

42
推荐指数
2
解决办法
6万
查看次数

如何修复ASP.NET错误"文件'nnn.aspx'尚未预编译,无法请求."?

我有一个VS 2005网站,我使用"发布网站"发布,我清除了所有三个复选框.我还有一个部署项目,它可以获取已发布的文件并创建一个MSI.然后,我将该软件包安装在单独的测试服务器上.

换句话说,整个网站是预编译的.但是,当我转到名为"Services"的特定子文件夹中的任何.aspx文件时,我得到一个HttpException:

System.Web.HttpException:文件'/myapp/Services/mypage.aspx'尚未预编译,无法请求.

如果我转到其他文件夹中的.aspx文件,无论是根目录还是其他子文件夹,它都能正常工作.

mypage.aspx本身的内容是: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="mypage.aspx.cs" Inherits="Services_mypage" %>"

/myapp/bin文件夹中,我可以看到一个mypage.aspx.989dc2fb.compiled文件.这个内容似乎指向bin文件夹中也存在的某个程序集.

为什么会出现此错误?.compiled文件在那里,程序集在那里,并且该程序集中存在有问题的类型(我可以在对象浏览器中看到它).它是关于.compiled文件的名称或内容的吗?我有某种错误的版本吗?.compiled文件名中看似随机的数字是什么意思,重要的是什么?

我还想提一下,这个问题突然出现了,我不确定自从几天前它正常工作以来可以做些什么改变(但据我所知,没有).

asp.net deployment webforms

41
推荐指数
6
解决办法
7万
查看次数

如何将WSDL URL从内部机器名更改为public?

我有一个简单的服务,我部署到Azure.可通过以下方式访问:

http://xxxxxxxxxxxxxxxxxxxxxxx.cloudapp.net/MyTestService.svc
Run Code Online (Sandbox Code Playgroud)

WSDL的URL使用内部计算机名称而不是公共DNS:

svcutil.exe http://rd001520d328923a/MyTestService.svc?wsdl
Run Code Online (Sandbox Code Playgroud)

显然,无法从机器外部访问WSDL.

我知道如果你在IIS中运行它,或者你知道服务的url,可以改变一些事情.例如,更改<serviceMetadata>配置以指定httpGetUrl属性,但这不起作用,因为我必须包括绝对URL.使用相对URL,它仍然使用内部计算机名称.真正的问题是WSDL包含带有机器名的URL引用,因此使它无用.

有两个不合标准的解决方法:

  • 有人建议我可以抓取WSDL,编辑它来修复URL,然后上传它,以便可以从不同的URL访问它.

  • 我发现2010年初有一个修补程序可用,但必须有一个更好的方法.

如何解决公共面向DNS使用而不是机器名称?

wcf wsdl azure

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