我有一个包含两列并包含两个记录的表。
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)
查询这些条件=,like,in工作正常。
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) 我在对以下键值列表(地图)进行排序时遇到问题。考虑按预期排序键将解决我的问题。
预期输出
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) 我在合并两个选择查询的结果时遇到问题,
我在 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)