小编isl*_*din的帖子

为什么Sql条件(not in,not like,!=)在表的varchar值上不起作用

我有一个包含两列并包含两个记录的表。

SQL表结构:

CREATE TABLE #TEMP_TEST
(
    ID bigint NOT NULL,
    DESCRIPTION varchar(500) NULL
) ON [PRIMARY]

INSERT INTO #TEMP_TEST VALUES(1, 'obsolete')
INSERT INTO #TEMP_TEST VALUES(2, NULL)

SELECT * FROM #TEMP_TEST
Run Code Online (Sandbox Code Playgroud)

#TEMP_TEST表中的虚拟记录总数

ID      | DESCRIPTION |
--------+-------------+
1       | obsolete    |
2       | NULL        |
Run Code Online (Sandbox Code Playgroud)

查询这些条件=likein工作正常。

SELECT * FROM #TEMP_TEST LC2 WHERE LC2.DESCRIPTION ='obsolete'
SELECT * FROM #TEMP_TEST LC2 WHERE LC2.DESCRIPTION LIKE 'obsolete'
SELECT * FROM #TEMP_TEST LC2 WHERE LC2.DESCRIPTION IN ('obsolete')
Run Code Online (Sandbox Code Playgroud)

这些结果正常工作:

ID …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2008

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

如何对地图集合的层次键进行排序?

我在对以下键值列表(地图)进行排序时遇到问题。考虑按预期排序键将解决我的问题。

预期输出

Key         Value
1           animal
1.1         dog
1.1.1       tommy
1.1.2       Lily
1.1.10      Sadie
1.2         cat
1.3         camel
1.3.2       camel2
1.3.11      camel11
Run Code Online (Sandbox Code Playgroud)

我尝试了 TreeMap 但它对每个字符编号进行排序。如果需要对字符串中的整数进行排序,将使用什么代替。我想要像上面提到的那样的预期输出。

TreeMap<String, String> data = new TreeMap<String, String>();       
data.put("1",   "animal");
data.put("1.1", "dog");
data.put("1.2", "cat");     
data.put("1.3", "camel");

data.put("1.3.2", "camel2");
data.put("1.3.11", "camel11");

data.put("1.1.1", "tommy");
data.put("1.1.2", "Lily");
data.put("1.1.10", "Sadie");


SortedSet<String> keys = new TreeSet<String>(data.keySet());

System.out.println("Key         Value");

for(String key: keys){
    System.out.println(key+"        "+data.get(key));
Run Code Online (Sandbox Code Playgroud)

实际产量

 Key        Value
1       animal
1.1         dog
1.1.1       tommy
1.1.10      Sadie
1.1.2       Lily
1.2         cat
1.3         camel
1.3.11 …
Run Code Online (Sandbox Code Playgroud)

java sorting collections dictionary

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

将两个 SQL SELECT 查询结果合并为一个查询和一个结果

我在合并两个选择查询的结果时遇到问题,
我在 sql 中执行了以下代码,您可以尝试

CREATE TABLE #a(a_id int, is_active bit, cr_date date)
CREATE TABLE #b(b_id int, a_id int, cr_date date)

INSERT INTO #a(a_id,is_active, cr_date)
VALUES(1,1,GETDATE()),(2,0,GETDATE()),(3,1,GETDATE()),(4,0,GETDATE()),(5,0,GETDATE())

INSERT INTO #b(b_id,a_id,cr_date)
VALUES(1,1,GETDATE()),(2,1,GETDATE()),(3,4,GETDATE()),(4,4,GETDATE()),(5,4,GETDATE()),(6,4,GETDATE())


CREATE TABLE #c(c_id int, is_active bit, cr_date date)
CREATE TABLE #d(d_id int, c_id int, cr_date date)

INSERT INTO #c(c_id,is_active, cr_date)
VALUES(1,1,GETDATE()),(2,0,GETDATE()),(3,1,GETDATE()),(4,0,GETDATE()),(5,0,GETDATE())

INSERT INTO #d(d_id,c_id,cr_date)
VALUES(1,1,GETDATE()),(2,1,GETDATE()),(3,4,GETDATE()),(4,4,GETDATE()),(5,4,GETDATE()),(6,4,GETDATE())



DECLARE @startDate date;
DECLARE @endDate date;
set @startDate='2012-10-26';
set @endDate=GETDATE();

SELECT 
'#b= '+CAST(COUNT(b.b_id) AS VARCHAR)   b_COUNT,
'#a = '+CAST(COUNT(a.a_id) AS VARCHAR)  a_COUNT  
FROM #a as a …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

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