小编for*_*orX的帖子

SQL查询,将SELECT存储在局部变量中

我创建了一个查询,重用了一些结果.我搜索一种方法将结果放入变量并使用它.

一个简单的方法来看看我想要的东西看起来像这样 - 我想要这个:

DECLARE @result1 ?????

SET @result1 = SELECT a,b,c FROM table1
SELECT a AS val FROM @result1
UNION
SELECT b AS val FROM @result1
UNION
SELECT c AS val FROM @result1
Run Code Online (Sandbox Code Playgroud)

不是这个 :

 SELECT a AS val FROM (SELECT a,b,c FROM table1)
 UNION
 SELECT b AS val FROM (SELECT a,b,c FROM table1)
 UNION
 SELECT c AS val FROM (SELECT a,b,c FROM table1)
Run Code Online (Sandbox Code Playgroud)

这不是我关心的这个查询的结果,而是:

  1. 停止选择结果很多次 - 在我的样本中,我重新选择了3次表

  2. 查询@result1通常要复杂得多.因此,使用变量,代码将更清晰.

也许我想要太多 - 或者有一种局部变量.或者使用类型表并在里面设置数据.

你有什么建议我的?

谢谢

sql-server-2005

51
推荐指数
4
解决办法
11万
查看次数

使类可序列化

我搜索如何使这个类可序列化为服务(SOAP)

<Serializable()> _
    Public Class Items

        Inherits StringEnumBase(Of Items)
        Public Sub New(ByVal StrValue As String)
            MyBase.New(StrValue)
        End Sub

        <Description("item 1")> Public Shared ReadOnly ITEM1 As New Items("ValueOfItem1")
        <Description("item 2")> Public Shared ReadOnly ITEM2 As New Items("ValueOfItem2")
        <Description("item 3")> Public Shared ReadOnly ITEM3 As New Items("ValueOfItem3")

    End Class
Run Code Online (Sandbox Code Playgroud)

vb.net serialization

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

Sql交叉条件

我想知道我们是否可以做有条件的交叉.theres是somes查询,但结果是错误的(总是空的).我写下应该得到什么.

DECLARE @CAN_USE_TABLE1 BIT
DECLARE @CAN_USE_TABLE2 BIT
DECLARE @CAN_USE_TABLE3 BIT
DECLARE @CAN_USE_TABLE4 BIT

DECLARE @TABLE1 AS TABLE ( ABC INT ) -- values will be 1,2,3
DECLARE @TABLE2 AS TABLE ( ABC INT ) -- values will be 1,2
DECLARE @TABLE3 AS TABLE ( ABC INT ) --EMPTY TABLE
DECLARE @TABLE4 AS TABLE ( ABC INT ) --EMPTY TABLE
INSERT INTO @TABLE1 VALUES (1)
INSERT INTO @TABLE1 VALUES (2)
INSERT INTO @TABLE1 VALUES (3)
INSERT INTO @TABLE2 VALUES (1)
INSERT …
Run Code Online (Sandbox Code Playgroud)

sql conditional intersect

6
推荐指数
1
解决办法
2792
查看次数

接口需要继承基类

我有一个接口的元素.我想使用正确的功能.但由于函数(IF)的实现,它总是使用基类函数

接口

Public Interface I
    Function F() As Boolean
End Interface
Run Code Online (Sandbox Code Playgroud)

接口I的基类实现

Public MustInherit Class B
    Implements I

    Public Overridable Function F() As Boolean Implements I.F
        Return True
    End Function
End Class
Run Code Online (Sandbox Code Playgroud)

使用基类的类将用作对象

Public Class C1
    Inherits B
    Public Overloads Function F() As Boolean
        Return False
    End Function
End Class

Public Class C2
    Inherits B    
End Class
Run Code Online (Sandbox Code Playgroud)

样品

Sub Main()
        Dim x As I
        x = New C1
        If x.F Then
            Console.WriteLine("c1 = true")
        Else
            Console.WriteLine("c1 = false")
        End If …
Run Code Online (Sandbox Code Playgroud)

vb.net inheritance interface

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

linq list string就好

我有一个列表:List(Of String)

我想用linq过滤它.

我使用这样的东西:newList =(from l in myList Where l Like String.Format("%{0}%",value)).ToList

价值就像"一个"或"不"或......

我想在sql中像"LIKE"这样的东西:比如"%a%",所以我会得到一个字符串列表,其中每个字符串中都有一个"a".

我应该怎么做?

保护你

List(Of String)
Run Code Online (Sandbox Code Playgroud)

linq

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

在哪里使用局部变量

可能重复:
参数化SQL IN子句?
SQL:使用IN子句将字符串转换为IDS

我想在WHERE IN子句中使用declare局部变量

像这样的东西:

表XYZ

COL1 COL2
1    A
2    B
3    C
4    D
5    E
Run Code Online (Sandbox Code Playgroud)

结果

1 A
2 B
5 E
Run Code Online (Sandbox Code Playgroud)

QUERY

DECLARE @VAR VARCHAR(MAX)
SET @VAR = '1,2,5'
SELECT * FROM XYZ WHERE COL1 IN @VAR
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

注意:我无法使用服务器功能

我只能创建原始值(通过代码)并将其与我的查询一起使用.我搜索的方式是我只会更改我的var而不是查询本身.

我的代码看起来像:

list (dbparameter)
mylist.add ('@var','1,2,5')

commandsql.returnresult(myQueryInString,mylist)
Run Code Online (Sandbox Code Playgroud)

我想要

sql sql-server sql-server-2005 where where-in

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