T-SQL 像函数 SUM/COUNT/etc 一样使用运算符 '&'
T-SQL use operator '&' like function SUM/COUNT/etc
你好,
在 SQL-Server (2014) 中我也搜索了这样的请求:
SELECT
T.[Text],
&(T.[Numeric])
FROM
MyTable AS T
GROUP BY
T.[Text];
我想使用“&”和“|”像 SUM()/MAX()/COUNT()/MIN() 函数。
有人可以帮助我吗?
编辑:
太需要了:
SELECT
T.[Text],
|(T.[Numeric])
FROM
MyTable AS T
GROUP BY
T.[Text];
编辑 2:
CREATE TABLE [dbo].[1L_Tests](
[ID_Test] [int] NOT NULL,
[Text] [varchar](5) NOT NULL,
[Numeric] [int] NOT NULL,
PRIMARY KEY ([ID_Test])
);
GO
INSERT INTO [dbo].[1L_Tests]
([ID_Test], [Text], [Numeric])
VALUES
(1, 'KCH', 0)
,(2, 'KCH', 12)
,(3, 'KCH', 13)
,(4, 'DAF', 9)
,(5, 'DAF', 7)
,(6, 'LDE', 29)
,(7, 'LDE', 37)
,(8, 'LDE', 46);
GO
SELECT
T.[Text],
&(T.[Numeric]) AS 'Inter',
|(T.[Numeric]) AS 'Union'
FROM
[1L_Tests] AS T
GROUP BY
T.[Text];
我预计:
Text | Inter | Union
KCH ; 0 ; 13
DAF ; 1 ; 15
LDE ; 4 ; 63
SQL 服务器没有按位聚合 AND。如果你知道你想要多少位,你可以做到 bit-by-bit:
select . . .,
min(t.number & 1) | min(t.number & 2) | min(t.number & 4) | . . .
from . . .
按位运算通常表明数据库中的过早优化。通常最好将 "bits" 表示为单独的标志。
你好, 在 SQL-Server (2014) 中我也搜索了这样的请求:
SELECT
T.[Text],
&(T.[Numeric])
FROM
MyTable AS T
GROUP BY
T.[Text];
我想使用“&”和“|”像 SUM()/MAX()/COUNT()/MIN() 函数。 有人可以帮助我吗?
编辑: 太需要了:
SELECT
T.[Text],
|(T.[Numeric])
FROM
MyTable AS T
GROUP BY
T.[Text];
编辑 2:
CREATE TABLE [dbo].[1L_Tests](
[ID_Test] [int] NOT NULL,
[Text] [varchar](5) NOT NULL,
[Numeric] [int] NOT NULL,
PRIMARY KEY ([ID_Test])
);
GO
INSERT INTO [dbo].[1L_Tests]
([ID_Test], [Text], [Numeric])
VALUES
(1, 'KCH', 0)
,(2, 'KCH', 12)
,(3, 'KCH', 13)
,(4, 'DAF', 9)
,(5, 'DAF', 7)
,(6, 'LDE', 29)
,(7, 'LDE', 37)
,(8, 'LDE', 46);
GO
SELECT
T.[Text],
&(T.[Numeric]) AS 'Inter',
|(T.[Numeric]) AS 'Union'
FROM
[1L_Tests] AS T
GROUP BY
T.[Text];
我预计:
Text | Inter | Union
KCH ; 0 ; 13
DAF ; 1 ; 15
LDE ; 4 ; 63
SQL 服务器没有按位聚合 AND。如果你知道你想要多少位,你可以做到 bit-by-bit:
select . . .,
min(t.number & 1) | min(t.number & 2) | min(t.number & 4) | . . .
from . . .
按位运算通常表明数据库中的过早优化。通常最好将 "bits" 表示为单独的标志。